Commit Graph

1602 Commits

Author SHA1 Message Date
Samuel Just
dbfb661eb9
Merge pull request #55886 from tchaikov/wip-ceph.spec-gcc-13
ceph.spec.in: bump gcc-toolset to 13 and use it on rhel>=8

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2024-03-21 14:24:39 -07:00
Yuri Weinstein
bf30425f5e
Merge pull request #55409 from cybozu/add-ceph-exporter-to-deb-package
debian: add ceph-exporter package

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2024-03-20 08:40:57 -07:00
Dan Mick
d3f3b0784c
Merge pull request #56203 from athanatos/sjust/wip-protoc-dependencies
crimson: add crimson-osd rpm and deb runtime dependencies for protobuf inherited from seastar
2024-03-19 16:03:00 -07:00
Adam King
920886ac64
Merge pull request #55615 from rhcs-dashboard/grafana-mount-dashboards
mgr/cephadm: mount grafana dashboards from the path

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Pedro Gonzalez Gomez <pegonzal@redhat.com>
2024-03-19 10:03:16 -04:00
Samuel Just
57602aad35 ceph.spec.in: add runtime protobuf dependency for crimson-osd inherited from seastar
Signed-off-by: Samuel Just <sjust@redhat.com>
2024-03-14 13:52:51 -07:00
Kefu Chai
913d127c81 ceph.spec.in: use gcc-toolset when with seastar or rhel 8
both RHEL8 and RHEL9 have gcc-toolset 13, and we need to use gts-13
for building crimson, so let's enable it when building crimson,
and we need to use gts-11 when building on RHEL7. hence this change.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-03-11 18:28:17 +08:00
Kefu Chai
55da694632 ceph.spec.in: use gcc-toolset 13 for crimson build
since gts 13 is out, and GCC-13 brings better support of C++20 coroutines,
and because clang prefers using a newer gts when its gcc is around. so
let's bump up the gcc-toolset from 11 to 13 when building crimson. because
gcc-toolset-13 LTO triggers a linker bug resulting in a segfault in SafeTimer,
see https://tracker.ceph.com/issues/63867 , we cannot switch the classic
build to gts 13 without proving that it does not incur performance
regressions.

since annobin plugin package was renamed to
gcc-toolset-13-gcc-plugin-annobin, let's update its name accordingly.

and use -runtime subpackage instead of -build, as
macros.gcc-toolset-13-enable is now located in -runtime subpackage
since devtoolset12

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-03-11 18:28:17 +08:00
Samuel Just
a164f5f6d8 ceph.spec.in: disable lto to work around gcc-toolset-13 linker bug
gcc-toolset-13 lto can trigger a linker bug resulting in a segfault in
SafeTimer (and perhaps elsewhere).  See
https://tracker.ceph.com/issues/63867 for details.  This patch disables
lto for now now so that we can switch to gcc-toolset-13.

Fixes: https://tracker.ceph.com/issues/63867
Signed-off-by: Samuel Just <sjust@redhat.com>
2024-03-11 18:28:17 +08:00
Kefu Chai
f5f2e4cc10 ceph.spec.in: set CMAKE_EXE_LINKER_FLAGS to -lstdc++
because the gcc-toolset-13 always links against the `libstdc++_nonshared.a`, which misses the
simple symbols. so we have to link against libstdc++ explicitly to assure that the
executables have access to them when compiling with the gcc-toolset toolchain.

see
```
/opt/rh/gcc-toolset-13/root/usr/bin/c++ -O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic -pie CMakeFiles/ceph_scratchtool.dir/scratchtool.c.o -o ../../bin/ceph_scratchtool  -Wl,-rpath,/home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos9/DIST/centos9/MACHINE_SIZE/gigantic/release/19.0.0-1977-gb0c1f7e8/rpm/el9/BUILD/ceph-19.0.0-1977-gb0c1f7e8/redhat-linux-build/lib: ../../lib/librados.so.2.0.0 ../../lib/libglobal.a ../../lib/libceph-common.so.2 ../../lib/libjson_spirit.a ../../lib/libcommon_utf8.a ../../lib/liberasure_code.a ../../lib/libextblkdev.a -lcap ../../boost/lib/libboost_thread.a ../../boost/lib/libboost_chrono.a ../../boost/lib/libboost_atomic.a ../../boost/lib/libboost_system.a ../../boost/lib/libboost_random.a ../../boost/lib/libboost_program_options.a ../../boost/lib/libboost_date_time.a ../../boost/lib/libboost_iostreams.a ../../boost/lib/libboost_regex.a /usr/lib64/libblkid.so /usr/lib64/libcrypto.so /usr/lib64/libudev.so /usr/lib64/libibverbs.so /usr/lib64/librdmacm.so /usr/lib64/libz.so ../opentelemetry-cpp/sdk/src/trace/libopentelemetry_trace.a ../opentelemetry-cpp/sdk/src/resource/libopentelemetry_resources.a ../opentelemetry-cpp/sdk/src/common/libopentelemetry_common.a ../opentelemetry-cpp/exporters/jaeger/libopentelemetry_exporter_jaeger_trace.a ../opentelemetry-cpp/ext/src/http/client/curl/libopentelemetry_http_client_curl.a /usr/lib64/libcurl.so /usr/lib64/libthrift.so -ldl /usr/lib64/librt.a -lresolv  -Wl,--as-needed -latomic
/opt/rh/gcc-toolset-13/root/usr/libexec/gcc/x86_64-redhat-linux/13/ld: /opt/rh/gcc-toolset-13/root/usr/lib/gcc/x86_64-redhat-linux/13/libstdc++_nonshared.a(ios_init.o): undefined reference to symbol '_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4'
/opt/rh/gcc-toolset-13/root/usr/libexec/gcc/x86_64-redhat-linux/13/ld:
/usr/lib64/libstdc++.so.6: error adding symbols: DSO missing from command line
```

this change prepares us for switching to gts-13.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-03-11 09:53:39 +08:00
Kefu Chai
c8e37d1c6f ceph.spec.in: use gts_version instead of gts_prefix
since we are going to use different gcc-toolset versions on rhel8 and
on rhel9, and the subpackage names of gcc-toolset changed across
gts 11 and gts 13, let's prepare for this change.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-03-11 09:48:36 +08:00
Nizamudeen A
2a112acd0a mgr/cephadm: mount grafana dashboards from the path
For this, the grafana dashboards are installed directly to the
containers and later, cephadm picks it up to mount the dashboards to the
grafana container

Signed-off-by: Nizamudeen A <nia@redhat.com>
2024-03-08 15:51:08 +05:30
Casey Bodley
25ce4845f5 rpm: disable system_qat for non-x86_64 arch
Fixes: https://tracker.ceph.com/issues/64678

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-03-06 09:25:23 -05:00
Shinya Hayashi
32cbe079c6 systemd: add systemd unit file for ceph-exporter
Signed-off-by: Shinya Hayashi <shinya-hayashi@cybozu.co.jp>
2024-03-06 07:24:15 +00:00
Casey Bodley
7710719dec rpm: add system_qat option, default on for centos9
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-02-07 11:13:21 -05:00
Matan Breizman
31717ac36c
Merge pull request #55444 from Matan-B/wip-crimson-seastar-upgrade
Crimson: bump up seastar version 

Reviewed-by: Samuel Just <sjust@redhat.com>
2024-02-07 11:38:45 +02:00
Matan Breizman
d49990f246 ceph.spec.in: crimson add protobuf
Following eea4102091

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2024-02-06 15:49:08 +00:00
Adam Kupczyk
b5bae62c00
Merge pull request #55054 from pereman2/zns-remove
os/bluestore: remove zoned namespace support
It has never been finished and now its in the way of future improvements.
2024-02-06 15:32:48 +01:00
baum
3cb0412e26
Merge pull request #55330 from baum/centos9-install-build-deps
🧹build dependencies: centos9
2024-02-02 09:54:28 +02:00
Adam King
a4452f6cc4
Merge pull request #54742 from guits/node-proxy
orch: implement hardware monitoring

Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2024-01-31 13:28:50 -05:00
Nizamudeen A
538f94cf16 vstart: add nvmeof_gw to the vstart script
so that it can be later used by the dashboard to configure the nvmeof
through UI

and create rbd pool in UI

Fixes: https://tracker.ceph.com/issues/64201
Signed-off-by: Nizamudeen A <nia@redhat.com>
2024-01-31 12:46:11 +05:30
Nizamudeen A
35e40c4e8f mgr/dashboard: adapt to new nvmeof APIs
Fixes: https://tracker.ceph.com/issues/64201
Signed-off-by: Nizamudeen A <nia@redhat.com>
2024-01-30 15:39:35 +05:30
Guillaume Abrioux
0985e20134 ceph-volume: use 'no workqueue' options with dmcrypt
CloudFlare engineers made some testing and realized that using
workqueues with encryption on flash devices has a bad effect.

See [1] for details.

With this patch it will make ceph-volume call crypsetup with
`--perf-no_read_workqueue` and `--perf-no_write_workqueue` options
when the device is not a rotational.

[1] https://blog.cloudflare.com/speeding-up-linux-disk-encryption/

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
Co-Authored-by: Stefan Kooman <stefan@kooman.org>
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-01-26 22:05:30 +01:00
Alexander Indenbaum
11a37da053 build dependencies: centos9
- ceph.spec.in: declare git as build dependency
- install-deps.sh: enable CRB repo

Test procedure:
    docker run --rm -ti  -v /home/baum/ceph-ci:/home/ceph quay.io/centos/centos:stream9 bash
    [root@a3c4b1545e93 /]# cd /home/ceph/
    [root@a3c4b1545e93 ceph]# ./install-deps.sh 2>&1 tee install-deps.log

Signed-off-by: Alexander Indenbaum <aindenba@redhat.com>
2024-01-26 19:56:31 +00:00
Guillaume Abrioux
0dd7364364 node-proxy: add packaging related changes
This adds the required changes to build an RPM of node-proxy.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-01-25 15:07:21 +00:00
Pere Diaz Bou
03e11acca0 os/bluestore: remove zoned from crimson
Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
2024-01-09 23:08:05 +01:00
Yuval Lifshitz
223bcfa5b4
Merge pull request #54935 from yuvalif/wip-yuval-return-lua-devel
build/rgw/lua: return lua-devel runtime dependency

reviewed-by: cbodley
2023-12-19 19:57:47 +02:00
Nizamudeen A
c52c2dca68
Merge pull request #54710 from kalaspuffar/replace_jwt_with_pure_python
mgr/dashboard: Simplify authentication protocol

Reviewed-by: Fabian-Gruenbichler <NOT@FOUND>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
2023-12-19 19:18:20 +05:30
Yuval Lifshitz
76df4d8243 build/rgw/lua: return lua-devel runtime dependency
reverting: b0a77a53ab
after sepia lab issue is resolved

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
2023-12-17 15:34:15 +00:00
Kefu Chai
250f870181
Merge pull request #51732 from andreas-schwab/main
ceph.spec.in: enable build on riscv64 for openSUSE Factory

Reviewed-by: Tim Serong <tserong@suse.com>
Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2023-12-15 09:13:08 +08:00
Daniel Persson
c1ea66fe12 mgr/dashboard: Changes suggested after review by @epuertat.
Move the JWT requirement to the test requirements file. Also remove JWT from ceph specification and debian build.

Signed-off-by: Daniel Persson <mailto.woden@gmail.com>
2023-12-13 10:43:01 +01:00
Patrick Donnelly
23af075146
Merge PR #54726 into main
* refs/pull/54726/head:
	PendingReleaseNotes: announce cephfs-shell avail. on rhel9
	qa: test fs:shell on all distros
	qa: add cephfs-shell to installed rpm packages
	ceph.spec.in: enable support for cephfs-shell by default via EPEL9

Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Dhairya Parmar <dparmar@redhat.com>
2023-12-11 08:37:39 -05:00
Yuval Lifshitz
b0a77a53ab build/rgw/lua: remove lua-devel as a runtime dependency
this is due to the fact that lua-devel
cannot be installed in teuthology for rhel8

this would fail the build of some luarocks packages

Fixes: https://tracker.ceph.com/issues/63672

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
2023-12-10 08:09:35 +00:00
Patrick Donnelly
d63d96f8bc
ceph.spec.in: enable support for cephfs-shell by default via EPEL9
The required packages [1,2] are now at the right version and readily available.

[1] https://packages.fedoraproject.org/pkgs/python-cmd2/python3-cmd2/epel-9.html
[2] https://packages.fedoraproject.org/pkgs/python-colorama/python3-colorama/epel-9.html

Fixes: https://tracker.ceph.com/issues/43393
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-11-29 20:22:49 -05:00
Yuval Lifshitz
46500cace6 rgw/test/lua: add lua integration tests suite
Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>

Fixes: https://tracker.ceph.com/issues/63616
2023-11-23 16:36:28 +00:00
John Mulligan
dc52a352f7 ceph.spec.in: add build conditions to control cephadm bundling
Add two conditions to either disable bundling or switch to rpm based
depdencies. The default is to bundle deps from pip.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2023-11-06 13:27:41 -05:00
Daniel Gryniewicz
a4b19133f1
Merge pull request #52933 from dang/wip-dang-posix-driver
RGW - Add POSIX Driver

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
2023-09-15 08:58:52 -04:00
Daniel Gryniewicz
5258bcbd73 RGW - Add POSIX Driver
This is the MVP for a driver for RGW that operates on top of a POSIX
filesystem.  It supports get, put, list, copy, multipart, external
access via the filesystem itself, and ordered bucket listings via an
LRU-based cache.

Note that this is currently a Filter, indended to run on top of dbstore.
This is because it currently doesn't have any User implementation, so it
depends on dbstore's User.  Everything else is implemented in
POSIXDriver.  Once there is a User implementation, this will become a
Store, instead of a Filter.

Commit messages from bucket listing cache:

  rgw/posixdriver: recycle lmdb database handles as required

    While LMDB workflows often do not close/return database handles,
    ours continually reuses them.  This requires us to close each
    handle (atomically) when a cache entry is recycled.

  rgw/posixdriver: don't instantiate bucket cache entries from notify events

  rgw/posixdriver: incorporate lmdb-safe for now

    The current inclusion is based on https://github.com/Martchus/lmdb-safe,
    which is actively maintained but currently has some packaging issues the
    author has agreed to accept fixes for.

    For now, skip the submodule to save time and remove an external dependency.

  rgw/posixdriver: fix listing of cached, empty bucket

    * check lmdb enumeration result in all cases and w/better style
    * add unit test for enumeration of an empty cached directory

  rgw/posixdriver: nest lmdbs in a directory under the dbroot path to avoid cleanup issues

  rgw/posixdriver: refactor for posix integration

    * Derive BucketCache types as templates on a SAL driver and SAL
      bucket pair.

    * Integrate cache fills as callbacks into SAL layer (or mock, for
      tests)

    * Renaming and cleanups

  rgw/posixdriver: add bucket cache implementation and tests

    Adds free-standing cache of buckets and object names, with
    bucket names (and listing attributes, upcoming) managed in
    a hashed set of lmdb databases, which provides ordering and
    a high-performance listing cache.

    An framework for notification on new object creation (e.g.,
    outside S3 workflow) is provided, and a Linux implementation
    using inotify.

    FindLMDB.cmake taken with attribution and license.

  rgw/posixdriver: add zpp_bits serialization (FAST)

Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
Signed-off-by: Ali Maredia <amaredia@redhat.com>
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2023-09-14 12:09:40 -04:00
J. Eric Ivancich
c02906ae64 rgw: enhances rgw-restore-bucket-index script
This enhances the script to both process versioned buckets correctly
and to handle object names that begin with underscore.

If the bucket is versioned it submits each version chronologically
(based on mtime) to be reindexed in order to "replay" the modification
of objects. However mtime is not a perfect indicator. So additionally
it looks at the OLH object to determine the most recent version and
the script makes sure that it is replayed last. The order of previous
versions is likely correct, but not guaranteed to be so.

Additional logic is added to handle objects with names that begin with
underscore ('_') since that's used as a delimiter and needs to be
escaped and rados object locators are also used.

A man page for the script is added.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2023-08-30 14:41:15 -04:00
Matan Breizman
e6d2ec65bd ceph.spec.in: add sanitizers to seastar requires
```
CMake Error at src/seastar/CMakeLists.txt:782 (message):
  Sanitizers not found!
```

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2023-08-06 09:45:42 +00:00
liuqinfei
14c1f3ddd6 ceph.spec.in: add support for openEuler OS
The ceph main branch daily build on openEuler has been built.
https://github.com/openeuler-mirror/ceph-daily-build
The verification includes:
    - build ceph from source
    - run unit test
    - build RPM package

Signed-off-by: liuqinfei <lucas.liuqinfei@huawei.com>
2023-06-25 18:55:03 +08:00
Andreas Schwab
c7f5037293 ceph.spec.in: enable build on riscv64 for openSUSE Factory
Signed-off-by: Andreas Schwab <schwab@suse.de>
2023-05-24 16:42:42 +02:00
J. Eric Ivancich
637d461bf1 rgw: install rgw scripts with common files rather than radosgw files
Update ceph.spec.in and debian install files so
rgw-restore-bucket-index, rgw-orphan-list, rgw-gap-list,
rgw-gap-list-comparator are installed with common files.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2023-03-15 09:35:45 -04:00
J. Eric Ivancich
6ea11b1305 rgw: add rgw-restore-bucket-index
Adds an experimental script that allows a bucket index of a
non-versioned bucket to be restored by applying `radosgw-admin object
reindex ...` to all objects in the specified bucket. The objects in
the bucket are determined by scanning the data pool for head objects
containing the bucket's marker.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2023-03-09 11:00:57 -05:00
Redouane Kachach
110db72e24
mgr/rgw: adding mgr rgw module to ceph image
Fixes: https://tracker.ceph.com/issues/58856

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-02-27 19:11:25 +01:00
Casey Bodley
970a16cb30 rpm: use system arrow packages for fedora/centos9
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-01-25 13:47:08 -05:00
Casey Bodley
7760d31a72 rpm: combine system_utf8proc option into system_arrow
libarrow-devel depends on utf8proc-devel, so we can't enable
system_arrow without system_utf8proc

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-01-25 13:47:08 -05:00
Casey Bodley
0b561f985e rpm: fix package names for arrow/parquet
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-01-25 13:47:08 -05:00
Tim Serong
1f92b0314b ceph.spec.in: Replace %usrmerged macro with regular version check
%usrmerged is deprecated in favour of %if 0%{?suse_version} < 1550
(see https://en.opensuse.org/openSUSE:Usr_merge for details)

Fixes: https://tracker.ceph.com/issues/58501
Signed-off-by: Tim Serong <tserong@suse.com>
2023-01-19 18:28:06 +11:00
Laura Flores
e03067541c
Merge pull request #49712 from tchaikov/wip-packaging-in-setuptools
mgr/prometheus: use vendored "packaging" instead
2023-01-11 17:50:47 -06:00
Kefu Chai
cf6089200d mgr/prometheus: use vendored "packaging" instead
instead of using the top-level "packaging" module, use the one
vendored by setuptools.

packaging python module provides versioning defined by PEP-440.
but python3-packaging is provided by CentOS8 powertools repo,
which is not enabled by default. and in CentOS9, this package
is provided by AppStream instead of BaseOS.

as prometheus mgr module is included by ceph-mgr-module-core,
it would be desirable if our user can install ceph-mgr-module-core
without enabling powertools or AppStream repo on a CentOS or
its derivative distros.

fortunately, setuptools vendors packaging module. and both
CentOS8 and CentOS9 provide python3-setuptools in their BaseOS
repos.

in this change, instead of using "packging" module, we use the
venderored one, which is in turn embedded in pkg_resources.
this python module is provided by python3-setuptools on CentOS
distros, and python3-pkg-resources on Debian and its derivatives.

the packaging recipes are updated accordingly to reflect the
new runtime dependency.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2023-01-11 20:31:03 +08:00