Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wip 6894 #870

Closed
wants to merge 34 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
cedf3d9
mon: MonmapMonitor: support 'mon getmap [epoch]'
Oct 30, 2013
574ef9d
mon: OSDMonitor: proper error msg on invalid epoch on 'osd getmap/dump'
Oct 30, 2013
9c87523
docs: Fix a typo in RGW documentation
wido Oct 31, 2013
4838e05
autoconf: check for res_nquery explicitly
dotnwat Sep 21, 2013
c003ac7
common/buffer.cc: prefer prefix ++operator for non-primitive types
dalgaaf Nov 5, 2013
7bd7a41
mon/OSDMonitor.cc: prefer prefix ++operator for non-primitive types
dalgaaf Nov 5, 2013
aa15881
os/ObjectStore.cc: prefer prefix ++operator for non-primitive types
dalgaaf Nov 5, 2013
33c0b8c
osd/ErasureCodePlugin.cc: prefer prefix ++operator for non-primitive …
dalgaaf Nov 5, 2013
cf9d159
ErasureCodeJerasure.cc: prefer prefix ++operator for non-primitive types
dalgaaf Nov 5, 2013
c63f05a
osd/osd_types.cc: use !p.tiers.empty() instead of size()
dalgaaf Nov 5, 2013
32b8c07
ErasureCodeExample.h: prefer prefix ++operator for non-primitive types
dalgaaf Nov 5, 2013
e7aa089
remove unused variable from Objecter::RequestStateHook::call()
dalgaaf Nov 5, 2013
27328ee
rgw/rgw_http_client.cc: use static_cast<>() instead of C-Style cast
dalgaaf Nov 5, 2013
7f7d604
rgw/rgw_user.cc: use static_cast<>() instead of C-Style cast
dalgaaf Nov 5, 2013
a3ff37a
Client.cc: remove unused variable from Client::CommandHook::call()
dalgaaf Nov 5, 2013
b49a552
osd/ReplicatedPG.cc: remove unused variable
dalgaaf Nov 5, 2013
bbd5b36
rgw: remove unused variables
dalgaaf Nov 5, 2013
9c9aca1
test_seek_read.c: remove unused variable 'off64_t so'
dalgaaf Nov 5, 2013
eaba2f3
mon/MDSMonitor.cc: remove some unused variables
dalgaaf Nov 7, 2013
a65a2aa
client: use platform-specific stat time members
dotnwat Nov 7, 2013
282b3e3
trace: remove unused header
dotnwat Nov 8, 2013
2244038
doc: Remove redundant command for quick start preflight
kri5 Nov 8, 2013
0595683
doc: Added dumpling to the sequence.
Nov 8, 2013
b73376a
doc: Added Emperor upgrade.
Nov 8, 2013
7cccf96
doc: Updated Emperor reference to 0.72.
Nov 8, 2013
c3e09d1
doc/release-notes: fix dup
Nov 9, 2013
c57b0ec
Use clearer "local monitor storage" in log messages
Nov 13, 2013
2224caf
doc: Fix wrong package names on Debian Wheezy for building Ceph
wido Nov 15, 2013
d375dca
doc/release-notes.rst: v0.72.1 release notes
Nov 15, 2013
9805dd3
release-notes: clarify that the osd data directory needs to be mounted
Nov 15, 2013
de2d117
RBD Documentation and Example fixes for --image-format
ron-slc Nov 12, 2013
c89e797
man: re-generate changed man pages
jdurgin Nov 19, 2013
0596f6b
doc: warn about #6796 in release notes
Nov 19, 2013
fa6abe4
mon: osd dump should dump pool snaps as array, not object
Nov 26, 2013
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion ceph-object-corpus
Submodule ceph-object-corpus updated from 84a153 to 065542
46 changes: 45 additions & 1 deletion configure.ac
Expand Up @@ -120,8 +120,41 @@ AX_C_PRETTY_FUNC
# Checks for libraries.
ACX_PTHREAD
AC_CHECK_LIB([uuid], [uuid_parse], [true], AC_MSG_FAILURE([libuuid not found]))

#
# Check for res_nquery in libresolv. There are several variations. On OSX
# res_nquery is a macro defined in resolv.h, so the typical AC_CHECK_LIB
# doesn't work. On FreeBSD res_nquery can be found in libc. The required
# library for linking (if any) is defined RESOLV_LIBS.
#
AC_CHECK_HEADER([resolv.h], [], [], [#include <netinet/in.h>])

AC_DEFUN([CHECK_RESOLV_LIBS], [{
AC_MSG_CHECKING([if res_nquery will link (LIBS=$1)])
saved_LIBS="${LIBS}"
LIBS="$1"
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <netinet/in.h>
#include <resolv.h>
]], [[res_nquery(0, 0, 0, 0, 0, 0);]])],
[AC_MSG_RESULT([yes])
[$2]],
AC_MSG_RESULT([no]))
LIBS="${saved_LIBS}"
}])

RESOLV_LIBS=""
CHECK_RESOLV_LIBS([$RESOLV_LIBS], [resolv_libs="ok"])
if test x"$resolv_libs" != "xok"; then
RESOLV_LIBS="-lresolv"
CHECK_RESOLV_LIBS([$RESOLV_LIBS], [resolv_libs="ok"])
if test x"$resolv_libs" != "xok"; then
AC_MSG_FAILURE([no resolv library found])
fi
fi
AC_SUBST([RESOLV_LIBS])

AC_CHECK_LIB([m], [pow], [true], AC_MSG_FAILURE([libm not found]))
AC_CHECK_LIB([resolv], [__res_nquery], [true], AC_MSG_FAILURE([libresolv not found]))
if test x"$linux" = x"yes"; then
AC_CHECK_LIB([keyutils], [add_key], [true], AC_MSG_FAILURE([libkeyutils not found]))
fi
Expand Down Expand Up @@ -539,6 +572,17 @@ AC_CHECK_FUNC([fallocate],
[AC_DEFINE([CEPH_HAVE_FALLOCATE], [], [fallocate(2) is supported])],
[])

#
# Test for time-related `struct stat` members.
#

AC_CHECK_MEMBER([struct stat.st_mtim.tv_nsec],
[AC_DEFINE(HAVE_STAT_ST_MTIM_TV_NSEC, 1,
[Define if you have struct stat.st_mtim.tv_nsec])])

AC_CHECK_MEMBER([struct stat.st_mtimespec.tv_nsec],
[AC_DEFINE(HAVE_STAT_ST_MTIMESPEC_TV_NSEC, 1,
[Define if you have struct stat.st_mtimespec.tv_nsec])])

AC_CHECK_HEADERS([arpa/nameser_compat.h])
AC_CHECK_HEADERS([sys/prctl.h])
Expand Down
2 changes: 1 addition & 1 deletion doc/install/build-ceph.rst
Expand Up @@ -50,7 +50,7 @@ installed on your host. ::

On Debian/Wheezy, you may also need::

keyutils-dev libaio libboost-thread-dev
libkeyutils-dev libaio-dev libboost-thread-dev

.. note:: Some distributions that support Google's memory profiler tool may use
a different package name (e.g., ``libgoogle-perftools4``).
Expand Down
7 changes: 4 additions & 3 deletions doc/install/get-packages.rst
Expand Up @@ -71,9 +71,10 @@ Add Keys
========

Add a key to your system's list of trusted keys to avoid a security warning. For
major releases (e.g., ``cuttlefish``, ``emperor``) 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).
major releases (e.g., ``cuttlefish``, ``dumpling``, ``emperor``) 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
Expand Down
38 changes: 38 additions & 0 deletions doc/install/upgrading-ceph.rst
Expand Up @@ -250,6 +250,44 @@ Then add a new ``ceph.repo`` repository entry with the following contents.
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://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://ceph.com/rpm-emperor/{distro}/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc


.. note:: Ensure you use the correct URL for your distribution. Check the
http://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
--------------------

Expand Down
20 changes: 10 additions & 10 deletions doc/man/8/rbd.rst
Expand Up @@ -143,21 +143,21 @@ Commands
specified. Size will be the same as the parent snapshot.

The parent snapshot must be protected (see `rbd snap protect`).
This requires format 2.
This requires image format 2.

:command:`flatten` [*image-name*]
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 format 2.
This requires image format 2.

:command:`children` [*image-name*]
List the clones of the image at the given snapshot. This checks
every pool, and outputs the resulting poolname/imagename.

This requires format 2.
This requires image format 2.

:command:`resize` [*image-name*] [--allow-shrink]
Resizes rbd image. The size parameter also needs to be specified.
Expand Down Expand Up @@ -198,7 +198,7 @@ Commands

:command:`cp` [*src-image*] [*dest-image*]
Copies the content of a src-image into the newly created dest-image.
dest-image will have the same size, order, and format as src-image.
dest-image will have the same size, order, and image format as src-image.

:command:`mv` [*src-image*] [*dest-image*]
Renames an image. Note: rename across pools is not supported.
Expand Down Expand Up @@ -226,14 +226,14 @@ Commands
refer to this snapshot. `rbd clone` will fail on a nonprotected
snapshot.

This requires format 2.
This requires image format 2.

:command:`snap` unprotect [*image-name*]
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 format 2.
This requires image format 2.

:command:`map` [*image-name*]
Maps the specified image to a block device via the rbd kernel module.
Expand Down Expand Up @@ -351,7 +351,7 @@ To unmap an image::

To create an image and a clone from it::

rbd import --format 2 image mypool/parent
rbd import --image-format 2 image mypool/parent
rbd snap create --snap snapname mypool/parent
rbd snap protect mypool/parent@snap
rbd clone mypool/parent@snap otherpool/child
Expand All @@ -360,11 +360,11 @@ To create an image with a smaller stripe_unit (to better distribute small writes

rbd -p mypool create myimage --size 102400 --stripe-unit 65536 --stripe-count 16

To change an image from one format to another, export it and then
import it as the desired format::
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 --format 2 /tmp/img mypool/myimage2
rbd import --image-format 2 /tmp/img mypool/myimage2

To lock an image for exclusive use::

Expand Down
4 changes: 2 additions & 2 deletions doc/rbd/rbd-snapshot.rst
Expand Up @@ -177,7 +177,7 @@ 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 --format 2``), and is not yet supported by the kernel ``rbd`` module.
``rbd create --image-format 2``), and is not yet supported by the kernel ``rbd`` module.
So you MUST use QEMU/KVM or ``librbd`` directly to access clones in the current
release.

Expand Down Expand Up @@ -321,4 +321,4 @@ For example::
.. _QEMU: ../qemu-rbd/
.. _OpenStack: ../rbd-openstack/
.. _CloudStack: ../rbd-cloudstack/
.. _libvirt: ../libvirt/
.. _libvirt: ../libvirt/
62 changes: 56 additions & 6 deletions doc/release-notes.rst
Expand Up @@ -2,6 +2,50 @@
Release Notes
===============

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
-------------

Expand All @@ -11,6 +55,14 @@ 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
~~~~~~~~~~

Expand Down Expand Up @@ -38,7 +90,10 @@ Upgrade sequencing
~~~~~~~~~~~~~~~~~~

There are no specific upgrade restrictions on the order or sequence of
upgrading from 0.67.x Dumpling.
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
Expand Down Expand Up @@ -105,11 +160,6 @@ Upgrading from v0.67 Dumpling
however continue to work just the same as long as the osd already exists
in the crush map.

* '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
Expand Down
2 changes: 1 addition & 1 deletion doc/start/os-recommendations.rst
Expand Up @@ -37,7 +37,7 @@ specific distributions aside from the kernel and system initialization
package (i.e., sysvinit, upstart, systemd).


Emperor (0.71)
Emperor (0.72)
--------------

+----------+----------+--------------------+--------------+---------+------------+
Expand Down
3 changes: 0 additions & 3 deletions doc/start/quick-start-preflight.rst
Expand Up @@ -100,9 +100,6 @@ For Debian and Ubuntu distributions, perform the following steps:
#. Add the release key::

wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=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

#. Add the Ceph packages to your repository. Replace ``{ceph-stable-release}``
with a stable Ceph release (e.g., ``cuttlefish``, ``dumpling``, etc.).
Expand Down
25 changes: 4 additions & 21 deletions man/ceph-authtool.8
@@ -1,4 +1,4 @@
.TH "CEPH-AUTHTOOL" "8" "April 29, 2013" "dev" "Ceph"
.TH "CEPH-AUTHTOOL" "8" "November 18, 2013" "dev" "Ceph"
.SH NAME
ceph-authtool \- ceph keyring manipulation tool
.
Expand Down Expand Up @@ -34,7 +34,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nf
\fBceph\-authtool\fP \fIkeyringfile\fP [ \-l | \-\-list ] [ \-C | \-\-create\-keyring
] [ \-p | \-\-print ] [ \-n | \-\-name \fIentityname\fP ] [ \-\-gen\-key ] [ \-a |
\-\-add\-key \fIbase64_key\fP ] [ \-\-caps \fIcapfils\fP ]
\-\-add\-key \fIbase64_key\fP ] [ \-\-caps \fIcapfile\fP ]
.fi
.sp
.SH DESCRIPTION
Expand Down Expand Up @@ -69,33 +69,16 @@ will create a new keyring, overwriting any existing keyringfile
.UNINDENT
.INDENT 0.0
.TP
.B \-g, \-\-gen\-key
.B \-\-gen\-key
will generate a new secret key for the specified entityname
.UNINDENT
.INDENT 0.0
.TP
.B \-a, \-\-add\-key
.B \-\-add\-key
will add an encoded key to the keyring
.UNINDENT
.INDENT 0.0
.TP
.B \-u, \-\-set\-uid
sets the auid (authenticated user id) for the specified entityname
.UNINDENT
.INDENT 0.0
.TP
.B \-\-gen\-print\-key
will generate and print a new secret key without adding it to the keyringfile

NOTE: will work without a given keyringfile
.UNINDENT
.INDENT 0.0
.TP
.B \-\-import\-keyring
will import the content of a given keyring into the keyringfile
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cap subsystem capability
will set the capability for given subsystem
.UNINDENT
Expand Down
3 changes: 1 addition & 2 deletions man/ceph-conf.8
@@ -1,4 +1,4 @@
.TH "CEPH-CONF" "8" "April 29, 2013" "dev" "Ceph"
.TH "CEPH-CONF" "8" "November 18, 2013" "dev" "Ceph"
.SH NAME
ceph-conf \- ceph conf file tool
.
Expand Down Expand Up @@ -110,7 +110,6 @@ information.
.SH SEE ALSO
.sp
\fBceph\fP(8),
\fBmkcephfs\fP(8)
.SH COPYRIGHT
2010-2013, Inktank Storage, Inc. and contributors. Licensed under Creative Commons BY-SA
.\" Generated by docutils manpage writer.
Expand Down