From: Ali Maredia Date: Thu, 11 Feb 2016 17:59:15 +0000 (-0500) Subject: debian/rpm: split mon/osd/mds server packages X-Git-Tag: v10.0.4~9^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0cbe3dea69604730bc7dba7bc3844294f4c9ac5a;p=ceph.git debian/rpm: split mon/osd/mds server packages Split up the "ceph" package into four new packages: 1. ceph-mon 2. ceph-osd 3. ceph-mds (already done on Debian) 4. ceph-base (files shared among multiple servers) and then: 5. Make "ceph" into a metapackage that depends on both -mon and -osd (and -mds, for RPMs). To describe the outcome of this change another way: For RPMs: - "ceph-{mon,osd,mds}" Require: ceph-base. - "ceph" will become a metapackage that Requires: ceph-{mon,osd,mds}. For DEBs: - "ceph-{mon,osd,mds}" will Depends: ceph-base. - "ceph" will become a metapackage that Depends: ceph-{mon,osd}. - "ceph" will continue to Recommends: ceph-mds New users should "yum install ceph-mon" or "yum install ceph-osd" (or "apt-get install ceph-mon", etc) in order to install the exact daemons that they need. http://tracker.ceph.com/issues/10587 Fixes: #10587 Signed-off-by: Ken Dreyer --- diff --git a/ceph.spec.in b/ceph.spec.in index 51bba9d13f8..f9629fe22c2 100644 --- a/ceph.spec.in +++ b/ceph.spec.in @@ -90,6 +90,9 @@ Patch0: init-ceph.in-fedora.patch ################################################################################# # dependencies that apply across all distro families ################################################################################# +Requires: ceph-osd = %{epoch}:%{version}-%{release} +Requires: ceph-mds = %{epoch}:%{version}-%{release} +Requires: ceph-mon = %{epoch}:%{version}-%{release} Requires: librbd1 = %{epoch}:%{version}-%{release} Requires: librados2 = %{epoch}:%{version}-%{release} Requires: libcephfs1 = %{epoch}:%{version}-%{release} @@ -241,6 +244,13 @@ on commodity hardware and delivers object, block and file system storage. ################################################################################# # packages ################################################################################# +%package base +Summary: Ceph Base Package +Group: System Environment/Base +Requires: ceph-common = %{epoch}:%{version}-%{release} +%description base +Base is the package that includes all the files shared amongst ceph servers + %package -n ceph-common Summary: Ceph Common Group: System Environment/Base @@ -262,6 +272,28 @@ Requires: python-argparse %endif %description -n ceph-common Common utilities to mount and interact with a ceph storage cluster. +Comprised of files that are common to Ceph clients and servers. + +%package mds +Summary: Ceph Metadata Server Daemon +Group: System Environment/Base +Requires: ceph-base = %{epoch}:%{version}-%{release} +%description mds +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. + +%package mon +Summary: Ceph Monitor Daemon +Group: System Environment/Base +Requires: ceph-base = %{epoch}:%{version}-%{release} +# For ceph-rest-api +Requires: python-flask +%description mon +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. %package fuse Summary: Ceph fuse-based client @@ -327,6 +359,15 @@ under Open Cluster Framework (OCF) compliant resource managers such as Pacemaker. %endif +%package osd +Summary: Ceph Object Storage Daemon +Group: System Environment/Base +Requires: ceph-base = %{epoch}:%{version}-%{release} +%description osd +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. + %package -n librados2 Summary: RADOS distributed object store client library Group: System Environment/Libraries @@ -793,49 +834,25 @@ rm -rf $RPM_BUILD_ROOT # files ################################################################################# %files + +%files base %defattr(-,root,root,-) %docdir %{_docdir} %dir %{_docdir}/ceph %{_docdir}/ceph/sample.ceph.conf %{_docdir}/ceph/sample.fetch_config -%{_bindir}/cephfs -%{_bindir}/ceph-clsinfo -%{_bindir}/ceph-rest-api -%{python_sitelib}/ceph_rest_api.py* %{_bindir}/crushtool %{_bindir}/monmaptool %{_bindir}/osdmaptool %{_bindir}/ceph-run -%{_bindir}/ceph-mon -%{_bindir}/ceph-mds -%{_bindir}/ceph-objectstore-tool -%{_bindir}/ceph-bluefs-tool -%{_bindir}/ceph-osd %{_bindir}/ceph-detect-init -%{_bindir}/librados-config %{_bindir}/ceph-client-debug -%{_bindir}/cephfs-journal-tool -%{_bindir}/cephfs-table-tool -%{_bindir}/cephfs-data-scan -%{_bindir}/ceph-debugpack -%{_bindir}/ceph-coverage +%{_bindir}/cephfs %if 0%{?_with_systemd} -%{_unitdir}/ceph-mds@.service -%{_unitdir}/ceph-mon@.service %{_unitdir}/ceph-create-keys@.service -%{_unitdir}/ceph-osd@.service -%{_unitdir}/ceph-radosgw@.service -%{_unitdir}/ceph-disk@.service -%{_unitdir}/ceph.target -%{_unitdir}/ceph-osd.target -%{_unitdir}/ceph-mon.target -%{_unitdir}/ceph-mds.target -%{_unitdir}/ceph-radosgw.target %else %{_initrddir}/ceph %endif -%{_sbindir}/ceph-disk -%{_sbindir}/ceph-disk-udev %{_sbindir}/ceph-create-keys %{_sbindir}/rcceph %if 0%{?rhel} >= 7 || 0%{?fedora} || 0%{?suse_version} @@ -845,7 +862,6 @@ rm -rf $RPM_BUILD_ROOT %endif %dir %{_libexecdir}/ceph %{_libexecdir}/ceph/ceph_common.sh -%{_libexecdir}/ceph/ceph-osd-prestart.sh %dir %{_libdir}/rados-classes %{_libdir}/rados-classes/libcls_cephfs.so* %{_libdir}/rados-classes/libcls_rbd.so* @@ -883,30 +899,20 @@ rm -rf $RPM_BUILD_ROOT %config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-mon %config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds %endif +%{_unitdir}/ceph.target %{python_sitelib}/ceph_detect_init* %{python_sitelib}/ceph_disk* %{_mandir}/man8/ceph-deploy.8* %{_mandir}/man8/ceph-detect-init.8* -%{_mandir}/man8/ceph-disk.8* %{_mandir}/man8/ceph-create-keys.8* -%{_mandir}/man8/ceph-mon.8* -%{_mandir}/man8/ceph-mds.8* -%{_mandir}/man8/ceph-osd.8* %{_mandir}/man8/ceph-run.8* -%{_mandir}/man8/ceph-rest-api.8* %{_mandir}/man8/crushtool.8* %{_mandir}/man8/osdmaptool.8* %{_mandir}/man8/monmaptool.8* %{_mandir}/man8/cephfs.8* %{_mandir}/man8/mount.ceph.8* -%{_mandir}/man8/ceph-debugpack.8* -%{_mandir}/man8/ceph-clsinfo.8* -%{_mandir}/man8/librados-config.8* #set up placeholder directories %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/tmp -%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mon -%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd -%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mds %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-osd %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mds %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rgw @@ -997,6 +1003,36 @@ if [ "$1" -eq "0" ] ; then rm -rf /etc/ceph fi +%files mds +%{_bindir}/ceph-mds +%{_bindir}/cephfs-journal-tool +%{_bindir}/cephfs-table-tool +%{_bindir}/cephfs-data-scan +%{_mandir}/man8/ceph-mds.8* +%if 0%{?_with_systemd} +%{_unitdir}/ceph-mds@.service +%{_unitdir}/ceph-mds.target +%else +%{_initrddir}/ceph +%endif +%dir %{_localstatedir}/lib/ceph/mds +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mds + +%files mon +%{_bindir}/ceph-mon +%{_bindir}/ceph-rest-api +%{_mandir}/man8/ceph-mon.8* +%{_mandir}/man8/ceph-rest-api.8* +%dir %{_localstatedir}/lib/ceph/mon +%{python_sitelib}/ceph_rest_api.py* +%if 0%{?_with_systemd} +%{_unitdir}/ceph-mon@.service +%{_unitdir}/ceph-mon.target +%else +%{_initrddir}/ceph +%endif +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mon + ################################################################################# %files fuse %defattr(-,root,root,-) @@ -1037,6 +1073,8 @@ fi %config %{_sysconfdir}/bash_completion.d/radosgw-admin %dir %{_localstatedir}/lib/ceph/radosgw %if 0%{?_with_systemd} +%{_unitdir}/ceph-radosgw@.service +%{_unitdir}/ceph-radosgw.target %else %{_initrddir}/ceph-radosgw %{_sbindir}/rcceph-radosgw @@ -1086,6 +1124,41 @@ fi fi %endif +%files osd +%{_bindir}/ceph-clsinfo +%{_bindir}/ceph-bluefs-tool +%{_bindir}/ceph-objectstore-tool +%{_bindir}/ceph-osd +%{_sbindir}/ceph-disk +%{_sbindir}/ceph-disk-udev +%{_libexecdir}/ceph/ceph-osd-prestart.sh +%dir %{_libdir}/rados-classes +%{_libdir}/rados-classes/libcls_rbd.so* +%{_libdir}/rados-classes/libcls_hello.so* +%{_libdir}/rados-classes/libcls_rgw.so* +%{_libdir}/rados-classes/libcls_lock.so* +%{_libdir}/rados-classes/libcls_kvs.so* +%{_libdir}/rados-classes/libcls_refcount.so* +%{_libdir}/rados-classes/libcls_log.so* +%{_libdir}/rados-classes/libcls_replica_log.so* +%{_libdir}/rados-classes/libcls_statelog.so* +%{_libdir}/rados-classes/libcls_user.so* +%{_libdir}/rados-classes/libcls_version.so* +%{_udevrulesdir}/60-ceph-partuuid-workaround.rules +%{_udevrulesdir}/95-ceph-osd.rules +%{_mandir}/man8/ceph-clsinfo.8* +%{_mandir}/man8/ceph-disk.8* +%{_mandir}/man8/ceph-osd.8* +%if 0%{?_with_systemd} +%{_unitdir}/ceph-osd@.service +%{_unitdir}/ceph-osd.target +%{_unitdir}/ceph-disk@.service +%else +%{_initrddir}/ceph +%endif +%dir %{_localstatedir}/lib/ceph/osd +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd + ################################################################################# %if %{with ocf} %files resource-agents @@ -1127,6 +1200,8 @@ fi %if 0%{?_with_lttng} %{_libdir}/librados_tp.so %endif +%{_bindir}/librados-config +%{_mandir}/man8/librados-config.8* ################################################################################# %files -n python-rados @@ -1237,9 +1312,12 @@ ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1 %{_bindir}/ceph_test_* %{_bindir}/ceph_tpbench %{_bindir}/ceph_xattr_bench +%{_bindir}/ceph-coverage %{_bindir}/ceph-monstore-tool %{_bindir}/ceph-osdomap-tool %{_bindir}/ceph-kvstore-tool +%{_bindir}/ceph-debugpack +%{_mandir}/man8/ceph-debugpack.8* %dir %{_libdir}/ceph %{_libdir}/ceph/ceph-monstore-update-crush.sh @@ -1388,4 +1466,5 @@ exit 0 # We need an empty %%files list for python-ceph-compat, to tell rpmbuild to # actually build this meta package. + %changelog diff --git a/debian/.gitignore b/debian/.gitignore index fdf4f729e71..af287df929d 100644 --- a/debian/.gitignore +++ b/debian/.gitignore @@ -9,6 +9,10 @@ /ceph-fs-common /ceph-mds-dbg /ceph-mds +/ceph-mon-dbg +/ceph-mon +/ceph-osd-dbg +/ceph-osd /ceph-resource-agents /ceph.init /radosgw.init diff --git a/debian/ceph-base.dirs b/debian/ceph-base.dirs new file mode 100644 index 00000000000..1f52f14b9c6 --- /dev/null +++ b/debian/ceph-base.dirs @@ -0,0 +1,4 @@ +var/lib/ceph/tmp +var/lib/ceph/bootstrap-osd +var/lib/ceph/bootstrap-mds +var/lib/ceph/bootstrap-rgw diff --git a/debian/ceph-base.docs b/debian/ceph-base.docs new file mode 100644 index 00000000000..e845566c06f --- /dev/null +++ b/debian/ceph-base.docs @@ -0,0 +1 @@ +README diff --git a/debian/ceph-base.install b/debian/ceph-base.install new file mode 100644 index 00000000000..24fef5fa390 --- /dev/null +++ b/debian/ceph-base.install @@ -0,0 +1,22 @@ +etc/bash_completion.d/ceph +usr/sbin/ceph-create-keys +usr/bin/ceph-detect-init +usr/bin/ceph-debugpack +usr/bin/ceph-run +usr/bin/crushtool +usr/bin/monmaptool +usr/bin/osdmaptool +usr/lib/ceph/ceph_common.sh +usr/lib/ceph/erasure-code/* +usr/share/doc/ceph/sample.ceph.conf +usr/share/doc/ceph/sample.fetch_config +usr/share/man/man8/ceph-debugpack.8 +usr/share/man/man8/ceph-deploy.8 +usr/share/man/man8/ceph-run.8 +usr/share/man/man8/crushtool.8 +usr/share/man/man8/monmaptool.8 +usr/share/man/man8/osdmaptool.8 +usr/lib/python*/dist-packages/ceph_detect_init* +usr/share/man/man8/ceph-detect-init.8 +usr/share/man/man8/ceph-create-keys.8 +usr/bin/ceph-client-debug diff --git a/debian/ceph-base.lintian-overrides b/debian/ceph-base.lintian-overrides new file mode 100644 index 00000000000..e436e49310f --- /dev/null +++ b/debian/ceph-base.lintian-overrides @@ -0,0 +1,6 @@ +# +# the rados classes should NOT be stripped. +# +ceph: unstripped-binary-or-object ./usr/lib/rados-classes/libcls_rbd.so.1.0.0 +ceph: unstripped-binary-or-object ./usr/lib/rados-classes/libcls_rgw.so.1.0.0 + diff --git a/debian/ceph-base.postinst b/debian/ceph-base.postinst new file mode 100644 index 00000000000..75eeb59c624 --- /dev/null +++ b/debian/ceph-base.postinst @@ -0,0 +1,61 @@ +#!/bin/sh +# vim: set noet ts=8: +# postinst script for ceph +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# +# postinst configure +# old-postinst abort-upgrade +# conflictor's-postinst abort-remove in-favour +# postinst abort-remove +# deconfigured's-postinst abort-deconfigure in-favour [ ] +# +# The current action is to simply remove the mistakenly-added +# /etc/init/ceph.conf file; this could be done in any of these cases, +# although technically it will leave the system in a different state +# than the original install that included that file. So instead we +# only remove on "configure", since that's the only time we know we're +# successful in installing a newer package than the erroneous version. + +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +[ -f "/etc/default/ceph" ] && . /etc/default/ceph +[ -z "$SERVER_USER" ] && SERVER_USER=ceph +[ -z "$SERVER_GROUP" ] && SERVER_GROUP=ceph + +case "$1" in + configure) + rm -f /etc/init/ceph.conf + [ -x /sbin/start ] && start ceph-all || : + + # adjust file and directory permissions + for DIR in /var/lib/ceph/* ; do + if ! dpkg-statoverride --list $DIR >/dev/null + then + chown $SERVER_USER:$SERVER_GROUP $DIR + fi + done + ;; + abort-upgrade|abort-remove|abort-deconfigure) + : + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/debian/ceph-base.prerm b/debian/ceph-base.prerm new file mode 100644 index 00000000000..bfd7d3d6fb2 --- /dev/null +++ b/debian/ceph-base.prerm @@ -0,0 +1,23 @@ +#!/bin/sh +# vim: set noet ts=8: + +set -e + +case "$1" in + remove) + [ -x /sbin/stop ] && stop ceph-all || true + invoke-rc.d ceph stop || { + RESULT=$? + if [ $RESULT != 100 ]; then + exit $RESULT + fi + } + ;; + + *) + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/debian/ceph-common.install b/debian/ceph-common.install index e16536e79c5..769044a2ac8 100644 --- a/debian/ceph-common.install +++ b/debian/ceph-common.install @@ -30,3 +30,4 @@ etc/ceph/rbdmap etc/init.d/rbdmap lib/udev/rules.d/50-rbd.rules usr/lib/python*/dist-packages/ceph_argparse.py* +usr/lib/python*/dist-packages/ceph_daemon.py* diff --git a/debian/ceph-mon.dirs b/debian/ceph-mon.dirs new file mode 100644 index 00000000000..e2845f60229 --- /dev/null +++ b/debian/ceph-mon.dirs @@ -0,0 +1 @@ +var/lib/ceph/mon diff --git a/debian/ceph-mon.install b/debian/ceph-mon.install new file mode 100644 index 00000000000..9d08093f269 --- /dev/null +++ b/debian/ceph-mon.install @@ -0,0 +1,5 @@ +usr/bin/ceph-mon +usr/bin/ceph-rest-api +usr/share/man/man8/ceph-mon.8 +usr/share/man/man8/ceph-rest-api.8 +usr/lib/python*/dist-packages/ceph_rest_api.py* diff --git a/debian/ceph-osd.dirs b/debian/ceph-osd.dirs new file mode 100644 index 00000000000..b7fc476185f --- /dev/null +++ b/debian/ceph-osd.dirs @@ -0,0 +1 @@ +var/lib/ceph/osd diff --git a/debian/ceph-osd.install b/debian/ceph-osd.install new file mode 100644 index 00000000000..f693294e316 --- /dev/null +++ b/debian/ceph-osd.install @@ -0,0 +1,15 @@ +lib/udev/rules.d/95-ceph-osd.rules +lib/udev/rules.d/60-ceph-partuuid-workaround.rules +usr/sbin/ceph-disk +usr/sbin/ceph-disk-udev +usr/bin/ceph-clsinfo +usr/bin/ceph-objectstore-tool +usr/bin/ceph-bluefs-tool +usr/bin/ceph_objectstore_bench +usr/bin/ceph-osd +usr/lib/rados-classes/* +usr/libexec/ceph/ceph-osd-prestart.sh +usr/share/man/man8/ceph-clsinfo.8 +usr/share/man/man8/ceph-disk.8 +usr/share/man/man8/ceph-osd.8 +usr/lib/python*/dist-packages/ceph_disk* diff --git a/debian/ceph.dirs b/debian/ceph.dirs deleted file mode 100644 index faff244918a..00000000000 --- a/debian/ceph.dirs +++ /dev/null @@ -1,6 +0,0 @@ -var/lib/ceph/tmp -var/lib/ceph/mon -var/lib/ceph/osd -var/lib/ceph/bootstrap-osd -var/lib/ceph/bootstrap-mds -var/lib/ceph/bootstrap-rgw diff --git a/debian/ceph.docs b/debian/ceph.docs deleted file mode 100644 index e845566c06f..00000000000 --- a/debian/ceph.docs +++ /dev/null @@ -1 +0,0 @@ -README diff --git a/debian/ceph.install b/debian/ceph.install deleted file mode 100644 index 98e2ae35fd8..00000000000 --- a/debian/ceph.install +++ /dev/null @@ -1,42 +0,0 @@ -etc/bash_completion.d/ceph -lib/udev/rules.d/95-ceph-osd.rules -lib/udev/rules.d/60-ceph-partuuid-workaround.rules -usr/sbin/ceph-create-keys -usr/sbin/ceph-disk -usr/bin/ceph-detect-init -usr/bin/ceph-clsinfo -usr/bin/ceph-debugpack -usr/bin/ceph-mon -usr/bin/ceph-objectstore-tool -usr/bin/ceph-bluefs-tool -usr/bin/ceph-osd -usr/bin/ceph-run -usr/bin/ceph-rest-api -usr/lib/python*/dist-packages/ceph_rest_api.py -usr/lib/python*/dist-packages/ceph_detect_init* -usr/lib/python*/dist-packages/ceph_disk* -usr/bin/crushtool -usr/bin/monmaptool -usr/bin/osdmaptool -usr/lib/libos_tp.so.* -usr/lib/libosd_tp.so.* -usr/lib/ceph/ceph_common.sh -usr/lib/ceph/ceph-osd-prestart.sh -usr/lib/ceph/erasure-code/* -usr/lib/rados-classes/* -usr/share/doc/ceph/sample.ceph.conf -usr/share/doc/ceph/sample.fetch_config -usr/share/man/man8/ceph-clsinfo.8 -usr/share/man/man8/ceph-create-keys.8 -usr/share/man/man8/ceph-debugpack.8 -usr/share/man/man8/ceph-deploy.8 -usr/share/man/man8/ceph-detect-init.8 -usr/share/man/man8/ceph-disk.8 -usr/share/man/man8/ceph-mon.8 -usr/share/man/man8/ceph-osd.8 -usr/share/man/man8/ceph-run.8 -usr/share/man/man8/ceph-rest-api.8 -usr/share/man/man8/crushtool.8 -usr/share/man/man8/monmaptool.8 -usr/share/man/man8/osdmaptool.8 -usr/lib/python*/dist-packages/ceph_daemon.py* diff --git a/debian/ceph.lintian-overrides b/debian/ceph.lintian-overrides deleted file mode 100644 index e436e49310f..00000000000 --- a/debian/ceph.lintian-overrides +++ /dev/null @@ -1,6 +0,0 @@ -# -# the rados classes should NOT be stripped. -# -ceph: unstripped-binary-or-object ./usr/lib/rados-classes/libcls_rbd.so.1.0.0 -ceph: unstripped-binary-or-object ./usr/lib/rados-classes/libcls_rgw.so.1.0.0 - diff --git a/debian/ceph.postinst b/debian/ceph.postinst deleted file mode 100644 index 75eeb59c624..00000000000 --- a/debian/ceph.postinst +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh -# vim: set noet ts=8: -# postinst script for ceph -# -# see: dh_installdeb(1) - -set -e - -# summary of how this script can be called: -# -# postinst configure -# old-postinst abort-upgrade -# conflictor's-postinst abort-remove in-favour -# postinst abort-remove -# deconfigured's-postinst abort-deconfigure in-favour [ ] -# -# The current action is to simply remove the mistakenly-added -# /etc/init/ceph.conf file; this could be done in any of these cases, -# although technically it will leave the system in a different state -# than the original install that included that file. So instead we -# only remove on "configure", since that's the only time we know we're -# successful in installing a newer package than the erroneous version. - -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - -[ -f "/etc/default/ceph" ] && . /etc/default/ceph -[ -z "$SERVER_USER" ] && SERVER_USER=ceph -[ -z "$SERVER_GROUP" ] && SERVER_GROUP=ceph - -case "$1" in - configure) - rm -f /etc/init/ceph.conf - [ -x /sbin/start ] && start ceph-all || : - - # adjust file and directory permissions - for DIR in /var/lib/ceph/* ; do - if ! dpkg-statoverride --list $DIR >/dev/null - then - chown $SERVER_USER:$SERVER_GROUP $DIR - fi - done - ;; - abort-upgrade|abort-remove|abort-deconfigure) - : - ;; - - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 - - diff --git a/debian/ceph.prerm b/debian/ceph.prerm deleted file mode 100644 index bfd7d3d6fb2..00000000000 --- a/debian/ceph.prerm +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# vim: set noet ts=8: - -set -e - -case "$1" in - remove) - [ -x /sbin/stop ] && stop ceph-all || true - invoke-rc.d ceph stop || { - RESULT=$? - if [ $RESULT != 100 ]; then - exit $RESULT - fi - } - ;; - - *) - ;; -esac - -#DEBHELPER# - -exit 0 diff --git a/debian/control b/debian/control index bab1aca4dff..ea6077391da 100644 --- a/debian/control +++ b/debian/control @@ -66,8 +66,20 @@ Standards-Version: 3.9.3 Package: ceph Architecture: linux-any +Depends: ceph-mon, + ceph-osd +Recommends: ceph-mds +Description: distributed storage and file system + Ceph is a massively scalable, open-source, distributed + storage system that runs on commodity hardware and delivers object, + block and file system storage. + +Package: ceph-base +Architecture: linux-any Depends: binutils, ceph-common (>= 9.0.0-943), + ceph-osd, + ceph-mon, cryptsetup-bin | cryptsetup, debianutils, findutils, @@ -87,21 +99,20 @@ Replaces: ceph-common (<< 0.78-500), python-ceph (<< 0.92-1223), ceph-test (<< 0.94-1322) Breaks: python-ceph (<< 0.92-1223), ceph-test (<< 0.94-1322) X-Python-Version: >= 2.6 -Description: distributed storage and file system +Description: common ceph daemon libraries and management tools Ceph is a massively scalable, open-source, distributed storage system that runs on commodity hardware and delivers object, block and file system storage. . - This package contains all server daemons and management tools for creating, - running, and administering a Ceph storage cluster, with the exception of the - metadata server, which is necessary for using the distributed file system and is - provided by the ceph-mds package. + This package contains the libraries and management tools that are common among + the three Ceph server daemons (ceph-mon, ceph-osd, ceph-mds). These tools are + necessary for creating, running, and administering a Ceph storage cluster. Package: ceph-dbg Architecture: linux-any Section: debug Priority: extra -Depends: ceph (= ${binary:Version}), ${misc:Depends} +Depends: ceph-base, ${misc:Depends} Replaces: ceph-test-dbg (<< 0.94-1322) Breaks: ceph-test-dbg (<< 0.94-1322) Description: debugging symbols for ceph @@ -112,7 +123,7 @@ Description: debugging symbols for ceph Package: ceph-mds Architecture: linux-any -Depends: ceph, ${misc:Depends}, ${shlibs:Depends} +Depends: ceph-base (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} Recommends: ceph-fs-common, ceph-fuse, libcephfs1 Replaces: ceph (<< 0.93-417) Breaks: ceph (<< 0.93-417) @@ -136,6 +147,65 @@ Description: debugging symbols for ceph-mds . This package contains the debugging symbols for ceph-mds. +Package: ceph-mon +Architecture: linux-any +Depends: ceph-base (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} +Recommends: ceph-common +Replaces: ceph (<< 9.0.1-1294) +Breaks: ceph (<< 9.0.1-1294) +Description: monitor server for the ceph storage system + Ceph is a massively scalable, open-source, distributed + storage system that runs on commodity hardware and delivers object, + block and file system storage. + . + This package contains the cluster monitor daemon for the Ceph storage + 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. + +Package: ceph-mon-dbg +Architecture: linux-any +Section: debug +Priority: extra +Depends: ceph-mon (= ${binary:Version}), ${misc:Depends} +Replaces: ceph-dbg (<< 9.0.1-1294) +Breaks: ceph-dbg (<< 9.0.1-1294) +Description: debugging symbols for ceph-mon + Ceph is a massively scalable, open-source, distributed + storage system that runs on commodity hardware and delivers object, + block and file system storage. + . + This package contains the debugging symbols for ceph-mon. + +Package: ceph-osd +Architecture: linux-any +Depends: ceph-base (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} +Recommends: ceph-common +Replaces: ceph (<< 9.0.1-1294) +Breaks: ceph (<< 9.0.1-1294) +Description: OSD server for the ceph storage system + Ceph is a massively scalable, open-source, distributed + storage system that runs on commodity hardware and delivers object, + block and file system storage. + . + This package contains the Object Storage Daemon for the Ceph storage system. + It is responsible for storing objects on a local file system + and providing access to them over the network. + +Package: ceph-osd-dbg +Architecture: linux-any +Section: debug +Priority: extra +Depends: ceph-osd (= ${binary:Version}), ${misc:Depends} +Replaces: ceph-dbg (<< 9.0.1-1294) +Breaks: ceph-dbg (<< 9.0.1-1294) +Description: debugging symbols for ceph-osd + Ceph is a massively scalable, open-source, distributed + storage system that runs on commodity hardware and delivers object, + block and file system storage. + . + This package contains the debugging symbols for ceph-osd. + Package: ceph-fuse Architecture: linux-any Depends: ${misc:Depends}, ${shlibs:Depends} @@ -262,7 +332,7 @@ Breaks: ceph (<< 9.0.0-943), ceph-test (<< 9.0.3-1646), python-ceph (<< 0.92-1223), librbd1 (<< 0.92-1238) -Suggests: ceph, ceph-mds +Suggests: ceph-base, ceph-mds Description: common utilities to mount and interact with a ceph storage cluster Ceph is a massively scalable, open-source, distributed storage system that runs on commodity hardware and delivers object, diff --git a/debian/rules b/debian/rules index d01b0918ef5..2c699aecc9c 100755 --- a/debian/rules +++ b/debian/rules @@ -51,9 +51,9 @@ build-stamp: configure-stamp $(MAKE) - cp src/init-ceph debian/ceph.init + cp src/init-ceph debian/ceph-base.init cp src/init-radosgw debian/radosgw.init - cp src/logrotate.conf debian/ceph.logrotate + cp src/logrotate.conf debian/ceph-base/etc/logrotate.d/ceph.logrotate touch $@ @@ -67,7 +67,7 @@ clean: ltmain.sh missing rm -f configure Makefile.in man/Makefile.in src/Makefile.in rm -f src/acconfig.h.in - rm -f debian/ceph.init debian/radosgw.init debian/ceph.logrotate debian/radosgw.logrotate + rm -f debian/ceph-base.init debian/radosgw.init debian/ceph-base/etc/logrotate.d/ceph.logrotate debian/radosgw.logrotate dh_clean @@ -115,16 +115,23 @@ binary-arch: build install dh_installdocs -a --all ChangeLog dh_installexamples -a dh_install -a --sourcedir=$(DESTDIR) --list-missing - dh_installlogrotate -a + install -d -m0755 debian/ceph-base/etc/logrotate.d + install -m0644 debian/ceph.logrotate debian/ceph-base/etc/logrotate.d dh_installinit -a --no-start # dh_installinit is only set up to handle one upstart script # per package, so do this ourselves - install -d -m0755 debian/ceph/etc/init - install -m0644 src/upstart/ceph*.conf debian/ceph/etc/init + install -d -m0755 debian/ceph-base/etc/init + install -m0644 src/upstart/ceph-all.conf debian/ceph-base/etc/init + install -m0644 src/upstart/ceph-create-keys.conf debian/ceph-base/etc/init + install -d -m0755 debian/ceph-osd/etc/init + install -m0644 src/upstart/ceph-osd*.conf debian/ceph-osd/etc/init + install -m0644 src/upstart/ceph-disk.conf debian/ceph-osd/etc/init + install -d -m0755 debian/ceph-mon/etc/init + install -m0644 src/upstart/ceph-mon*.conf debian/ceph-mon/etc/init install -d -m0755 debian/ceph-common/etc/init install -m0644 src/upstart/rbdmap.conf debian/ceph-common/etc/init install -d -m0755 debian/ceph-mds/etc/init - mv debian/ceph/etc/init/ceph-mds* debian/ceph-mds/etc/init + install -m0644 src/upstart/ceph-mds.conf debian/ceph-mds/etc/init install -d -m0755 debian/radosgw/etc/init install -m0644 src/upstart/radosgw*.conf debian/radosgw/etc/init # install the systemd stuff manually since we have funny service names @@ -135,15 +142,17 @@ binary-arch: build install install -d -m0755 debian/ceph-common/usr/lib/tmpfiles.d install -m 0644 -D systemd/ceph.tmpfiles.d debian/ceph-common/usr/lib/tmpfiles.d/ceph.conf - install -d -m0755 debian/ceph/lib/systemd/system - install -m0644 systemd/ceph-mon@.service debian/ceph/lib/systemd/system - install -m0644 systemd/ceph-create-keys@.service debian/ceph/lib/systemd/system - install -m0644 systemd/ceph-osd@.service debian/ceph/lib/systemd/system - install -m0644 systemd/ceph-disk@.service debian/ceph/lib/systemd/system - sed -i s./etc/sysconfig/./etc/default/.g debian/ceph/lib/systemd/system/ceph-mon@.service - sed -i s./etc/sysconfig/./etc/default/.g debian/ceph/lib/systemd/system/ceph-create-keys@.service - sed -i s./etc/sysconfig/./etc/default/.g debian/ceph/lib/systemd/system/ceph-osd@.service - sed -i s./etc/sysconfig/./etc/default/.g debian/ceph/lib/systemd/system/ceph-disk@.service + install -d -m0755 debian/ceph-base/lib/systemd/system + install -d -m0755 debian/ceph-mon/lib/systemd/system + install -d -m0755 debian/ceph-osd/lib/systemd/system + install -m0644 systemd/ceph-mon@.service debian/ceph-mon/lib/systemd/system + install -m0644 systemd/ceph-create-keys@.service debian/ceph-base/lib/systemd/system + install -m0644 systemd/ceph-osd@.service debian/ceph-osd/lib/systemd/system + install -m0644 systemd/ceph-disk@.service debian/ceph-osd/lib/systemd/system + sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-mon/lib/systemd/system/ceph-mon@.service + sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-base/lib/systemd/system/ceph-create-keys@.service + sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-osd/lib/systemd/system/ceph-osd@.service + sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-osd/lib/systemd/system/ceph-disk@.service install -d -m0755 debian/ceph-mds/lib/systemd/system install -m0644 systemd/ceph-mds@.service debian/ceph-mds/lib/systemd/system @@ -159,6 +168,8 @@ binary-arch: build install dh_strip -pceph --dbg-package=ceph-dbg dh_strip -pceph-mds --dbg-package=ceph-mds-dbg + dh_strip -pceph-mon --dbg-package=ceph-mon-dbg + dh_strip -pceph-osd --dbg-package=ceph-osd-dbg dh_strip -pceph-fuse --dbg-package=ceph-fuse-dbg dh_strip -prbd-fuse --dbg-package=rbd-fuse-dbg dh_strip -prbd-mirror --dbg-package=rbd-mirror-dbg