Group: System/Filesystems
%endif
Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
+Requires: (ceph-classic-osd = %{_epoch_prefix}%{version}-%{release} or ceph-crimson-osd = %{_epoch_prefix}%{version}-%{release})
Requires: sudo
Requires: libstoragemgmt
-%if 0%{with crimson}
-Requires: protobuf
-%endif
%if 0%{?weak_deps}
Recommends: ceph-volume = %{_epoch_prefix}%{version}-%{release}
%endif
%description osd
ceph-osd is the object storage daemon for the Ceph distributed file
+system. It provides components shared between classic and crimson OSD
+implementations. It requires either the classic or crimson OSD
+to provide the core OSD daemon.
+
+%package classic-osd
+Summary: Ceph Object Storage Daemon (classic)
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release}
+%description classic-osd
+classic-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.
+%endif
%if 0%{with crimson}
%package crimson-osd
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release}
Requires: binutils
+Requires: protobuf
%description crimson-osd
crimson-osd is the object storage daemon for the Ceph distributed file
system. It is responsible for storing objects on a local file system
popd
%if 0%{with crimson}
-# package crimson-osd with the name of ceph-osd
-install -m 0755 %{buildroot}%{_bindir}/crimson-osd %{buildroot}%{_bindir}/ceph-osd
-install -m 0755 %{buildroot}%{_bindir}/crimson-objectstore-tool %{buildroot}%{_bindir}/ceph-objectstore-tool
+install -m 0755 %{buildroot}%{_bindir}/crimson-osd %{buildroot}%{_bindir}/ceph-crimson-osd
%endif
+install -m 0755 %{buildroot}%{_bindir}/ceph-osd %{buildroot}%{_bindir}/ceph-classic-osd
install -m 0644 -D src/etc-rbdmap %{buildroot}%{_sysconfdir}/ceph/rbdmap
%if 0%{?fedora} || 0%{?rhel} || 0%{?openEuler}
%files osd
%{_bindir}/ceph-clsinfo
-%{_bindir}/ceph-bluestore-tool
%{_bindir}/ceph-erasure-code-tool
-%{_bindir}/ceph-objectstore-tool
-%{_bindir}/ceph-osd
%{_libexecdir}/ceph/ceph-osd-prestart.sh
%{_mandir}/man8/ceph-clsinfo.8*
%{_mandir}/man8/ceph-osd.8*
-%{_mandir}/man8/ceph-bluestore-tool.8*
%{_unitdir}/ceph-osd@.service
%{_unitdir}/ceph-osd.target
-%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd
%config(noreplace) %{_sysctldir}/90-ceph-osd.conf
%post osd
fi
fi
+%files classic-osd
+%{_bindir}/ceph-bluestore-tool
+%{_bindir}/ceph-objectstore-tool
+%{_bindir}/ceph-classic-osd
+%{_mandir}/man8/ceph-bluestore-tool.8*
+%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd
+
%if 0%{with crimson}
%files crimson-osd
%{_bindir}/crimson-osd
%{_bindir}/crimson-objectstore-tool
+
+%post crimson-osd
+%{_sbindir}/update-alternatives --install %{_bindir}/ceph-osd ceph-osd \
+ %{_bindir}/ceph-crimson-osd 50
+
+%preun crimson-osd
+if [ $1 -eq 0 ]; then
+ ${_sbindir}/update-alternatives --remove ceph-osd %{_bindir}/ceph-crimson-osd
+fi
%endif
+%post classic-osd
+%{_sbindir}/update-alternatives --install %{_bindir}/ceph-osd ceph-osd \
+ %{_bindir}/ceph-classic-osd 100
+
+%preun classic-osd
+if [ $1 -eq 0 ]; then
+ ${_sbindir}/update-alternatives --remove ceph-osd %{_bindir}/ceph-classic-osd
+fi
+
%files volume
%{_sbindir}/ceph-volume
%{_sbindir}/ceph-volume-systemd
libbabeltrace-ctf-dev,
libbabeltrace-dev,
libblkid-dev (>= 2.17),
- libc-ares-dev <pkg.ceph.crimson>,
- libcrypto++-dev <pkg.ceph.crimson>,
+ libc-ares-dev,
+ libcrypto++-dev,
libcryptsetup-dev,
libcap-ng-dev,
libcap-dev,
libfmt-dev (>= 6.1.2),
libfuse-dev,
libgoogle-perftools-dev [i386 amd64 arm64],
- libgnutls28-dev <pkg.ceph.crimson>,
- libhwloc-dev <pkg.ceph.crimson>,
+ libgnutls28-dev,
+ libhwloc-dev,
libibverbs-dev,
libicu-dev,
librdmacm-dev,
libnss3-dev,
liboath-dev,
libnuma-dev,
- libpciaccess-dev <pkg.ceph.crimson>,
- libsctp-dev <pkg.ceph.crimson>,
+ libpciaccess-dev,
+ libsctp-dev,
libsnappy-dev,
libsqlite3-dev,
libssl-dev,
libndctl-dev (>= 63) <pkg.ceph.pmdk>,
libpmem-dev <pkg.ceph.pmdk>,
libpmemobj-dev (>= 1.8) <pkg.ceph.pmdk>,
- libprotobuf-dev <pkg.ceph.crimson>,
+ libprotobuf-dev,
ninja-build,
nlohmann-json3-dev,
patch,
pkg-config,
prometheus <pkg.ceph.check>,
- protobuf-compiler <pkg.ceph.crimson>,
+ protobuf-compiler,
python3-all-dev,
python3-cherrypy3,
python3-natsort,
python3-sphinx,
python3-venv,
python3-yaml,
- ragel <pkg.ceph.crimson>,
+ ragel,
socat <pkg.ceph.check>,
systemd,
- systemtap-sdt-dev <pkg.ceph.crimson>,
+ systemtap-sdt-dev,
uuid-dev <pkg.ceph.check>,
uuid-runtime,
valgrind,
Package: ceph-osd
Architecture: linux-any
-Depends: ceph-base (= ${binary:Version}),
+Depends: ceph-classic-osd (= ${binary:Version}) | ceph-osd-crimson (= ${binary:Version}),
sudo,
- ${misc:Depends},
${python3:Depends},
+ ${misc:Depends},
+ ${shlibs:Depends},
+Recommends: ceph-osd-classic (= ${binary:Version})
+Description: OSD server for the ceph storage system - shared components
+ 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 components shared between classic and crimson OSD implementations.
+ It ensures a Ceph OSD implementation is installed. By default,
+ it installs the classic OSD implementation (ceph-classic-osd). Users can
+ substitute with the experimental Crimson implementation (ceph-crimson-osd)
+ for improved performance and scalability.
+
+Package: ceph-osd-dbg
+Architecture: linux-any
+Section: debug
+Priority: extra
+Depends: ceph-osd (= ${binary:Version}),
+ ${misc:Depends},
+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-classic-osd
+Architecture: linux-any
+Depends: ceph-base (= ${binary:Version}),
+ ${misc:Depends},
${shlibs:Depends},
- libprotobuf23 <pkg.ceph.crimson>,
Replaces: ceph (<< 10),
ceph-test (<< 12.2.2-14),
- ceph-osd (<< 17.0.0)
+ ceph-osd (<< 20.1.1)
Breaks: ceph (<< 10),
ceph-test (<< 12.2.2-14),
- ceph-osd (<< 17.0.0)
+ ceph-osd (<< 20.1.1)
+Conflicts: ceph-crimson-osd
Recommends: ceph-volume (= ${binary:Version}),
nvme-cli,
smartmontools,
-Description: OSD server for the ceph storage system
+Description: Classic 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.
+ This package contains the classic Object Storage Daemon and
+ classic-specific components 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
+Package: ceph-classic-osd-dbg
Architecture: linux-any
Section: debug
Priority: extra
-Depends: ceph-osd (= ${binary:Version}),
+Depends: ceph-classic-osd (= ${binary:Version}),
${misc:Depends},
-Description: debugging symbols for ceph-osd
+Description: debugging symbols for ceph-classic-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.
+ This package contains the debugging symbols for ceph-classic-osd.
+
+Package: ceph-crimson-osd
+Architecture: any
+Depends: ceph-base (= ${binary:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libprotobuf23,
+Conflicts: ceph-classic-osd
+Recommends: ceph-volume (= ${binary:Version}),
+ nvme-cli,
+ smartmontools,
+Description: Crimson 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.
+ .
+ Crimson is the next generation of ceph-osd daemon featuring enhanced
+ performance on fast network and storage devices.
+ .
+ This package contains the Crimson Object Storage Daemon and
+ crimson-specific components 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-crimson-osd-dbg
+Architecture: linux-any
+Section: debug
+Priority: extra
+Depends: ceph-crimson-osd (= ${binary:Version}),
+ ${misc:Depends},
+Description: debugging symbols for ceph-crimson-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-crimson-osd.
Package: ceph-volume
Architecture: all
# see http://tracker.ceph.com/issues/25209
export DEB_LDFLAGS_MAINT_STRIP = -Wl,-Bsymbolic-functions
endif
-ifeq (,$(findstring WITH_CRIMSON,$(CEPH_EXTRA_CMAKE_ARGS)))
- export CEPH_OSD_BASENAME = ceph-osd
-else
- export CEPH_OSD_BASENAME = crimson-osd
-endif
ifneq ($(filter pkg.ceph.arrow,$(DEB_BUILD_PROFILES)),)
extraopts += -DWITH_SYSTEM_ARROW=ON
endif
-
extraopts += -DWITH_JAEGER=ON
extraopts += -DWITH_SYSTEM_UTF8PROC=ON
extraopts += -DWITH_OCF=ON -DWITH_LTTNG=ON
else
extraopts += -DWITH_RBD_RWL=OFF
endif
+extraopts += -DWITH_CRIMSON=ON
extraopts += -DWITH_RBD_SSD_CACHE=ON
# assumes that ceph is exmpt from multiarch support, so we override the libdir.
extraopts += -DCMAKE_INSTALL_LIBDIR=/usr/lib
override_dh_auto_install:
dh_auto_install --buildsystem=cmake --destdir=$(DESTDIR)
+
install -D -m 644 udev/50-rbd.rules $(DESTDIR)/lib/udev/rules.d/50-rbd.rules
install -D -m 644 src/etc-rbdmap $(DESTDIR)/etc/ceph/rbdmap
install -D -m 644 etc/sysctl/90-ceph-osd.conf $(DESTDIR)/etc/sysctl.d/30-ceph-osd.conf