- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
以下流程在ubuntu22.04 和 openEuler20.03 都实际操作过 。
从https://docs.ceph.com/en/latest/releases/找到pacific版本对应的tag为16.2.15 。
git clone https://github.com/ceph/ceph.git # 查看所有tag git ls-remote --tags origin |grep 16.2. 618f440892089921c3e944a991122ddc44e60516 refs/tags/v16.2.15^{} # 根据git log的commit找到pacifc的release tag为v16.2.15 commit 618f440892089921c3e944a991122ddc44e60516 (HEAD -> ceph-pacific-learning, tag: v16.2.15, tag: ls, origin/ceph-pacific-learning) Author: Ceph Release Team Date: Mon Feb 26 19:21:09 2024 +0000 16.2.15 Signed-off-by: Ceph Release Team # 或者 git show v16.2.15,可以确认即可 # 切换到pacific的release tag git checkout v16.2.15 # 这个tag是一个快照,不可修改,所以创建我们自己的分支 git checkout -b ceph-pacific-learning
执行命令git submodule update --init --recursive --progress更新子模块 。
如果子模块拉取失败:
[submodule "src/erasure-code/jerasure/gf-complete"]
,将url = https://github.com/ceph/gf-complete.git
部分替换为镜像的地址如下:[submodule "ceph-object-corpus"] path = ceph-object-corpus url = https://gitclone.com/ceph/ceph-object-corpus.git [submodule "src/civetweb"] path = src/civetweb url = https://gitclone.com/ceph/civetweb [submodule "src/erasure-code/jerasure/jerasure"] path = src/erasure-code/jerasure/jerasure url = https://gitclone.com/ceph/jerasure.git branch = v2-ceph [submodule "src/erasure-code/jerasure/gf-complete"] path = src/erasure-code/jerasure/gf-complete url = https://gitclone.com/ceph/gf-complete.git branch = v3-ceph [submodule "src/rocksdb"] path = src/rocksdb url = https://gitclone.com/ceph/rocksdb ignore = dirty [submodule "ceph-erasure-code-corpus"] path = ceph-erasure-code-corpus url = https://gitclone.com/ceph/ceph-erasure-code-corpus.git
执行git submodule sync --recursive更新git拉取的地址,再次执行git submodule update --init --recursive --progress 。
fatal: clone of 'https://github.com/spdk/dpdk.git' into submodule path '/data/ceph-learning/src/spdk/dpdk' failed
,手动多拉取几次git clone https://github.com/spdk/dpdk.git /data/ceph-learning/src/spdk/dpdk --progress
,或者将https换成git执行git clone git://github.com/spdk/dpdk.git /data/ceph-learning/src/spdk/dpdk --progress
./install-deps.sh
如果是openEuler系统 。
index 7e137d687f1..b22d45f409d 100755 --- a/install-deps.sh +++ b/install-deps.sh @@ -410,7 +410,7 @@ else $SUDO env DEBIAN_FRONTEND=noninteractive apt-get -y remove ceph-build-deps if [ "$control" != "debian/control" ] ; then rm $control; fi ;; - centos|fedora|rhel|ol|virtuozzo) + centos|fedora|rhel|ol|virtuozzo|openEuler) # 修改这里 builddepcmd="dnf -y builddep --allowerasing" echo "Using dnf to install dependencies" case "$ID" in
cmake -LH
可以看到cmake可用参数和描述信息,例如// ceph-mgr is enabled WITH_MGR:BOOL=ON // Build the mgr/dashboard frontend using `npm` WITH_MGR_DASHBOARD_FRONTEND:BOOL=ON // build OCF-compliant cluster resource agent WITH_OCF:BOOL=OFF
dashboard依赖node、ng的一堆包,系统版本不同依赖问题也不同,编译会很麻烦,如果用不到它可以关掉:
./do_cmake.sh -DWITH_MGR_DASHBOARD_FRONTEND=OFF
如果需要dashboard,直接执行./do_cmake.sh后,到build目录下,按照下面的编译dashboard配置后,再回来执行make 。
执行./do_cmake.sh后会在ceph源码顶层目录下生成一个build目录 。
cd build make -j16
Tips:make过程中也会下载一些软件包,没有那种方式上网可能会导致超时失败,失败后可以继续make -j16增量编译 。
要使用vstart启动ceph,还需要编译相关环境,在build目录下 。
make vstart
MON=1 OSD=2 MGR=1 RGW=1 NFS=1 ../src/vstart.sh -d -n -x
根据输出提示在shell中EXPORT 。
export PYTHONPATH=/data/ceph-learning/src/pybind:/data/ceph-learning/build/lib/cython_modules/lib.3:/data/ceph-learning/src/python-common:$PYTHONPATH export LD_LIBRARY_PATH=/data/ceph-learning/build/lib:$LD_LIBRARY_PATH export PATH=/data/ceph-learning/build/bin:$PATH alias cephfs-shell=/data/ceph-learning/src/tools/cephfs/shell/cephfs-shell CEPH_DEV=1
root@yielde:/data/ceph-learning/build# ceph -s 2025-02-09T18:23:21.560+0800 ffff73eae120 -1 WARNING: all dangerous and experimental features are enabled. 2025-02-09T18:23:21.568+0800 ffff73eae120 -1 WARNING: all dangerous and experimental features are enabled. cluster: id: 22b8a5ef-b731-43d6-9e5a-e3c3e77cad68 health: HEALTH_OK services: mon: 1 daemons, quorum a (age 3m) mgr: x(active, since 2m) mds: 1/1 daemons up, 2 standby osd: 2 osds: 2 up (since 3m), 2 in (since 3m) rgw: 1 daemon active (1 hosts, 1 zones) data: volumes: 1/1 healthy pools: 8 pools, 321 pgs objects: 229 objects, 20 KiB usage: 2.0 GiB used, 200 GiB / 202 GiB avail pgs: 321 active+clean io: client: 85 B/s rd, 0 op/s rd, 0 op/s wr
ceph -s
Đầu raModule 'dashboard' has failed: No module named 'routes'
,缺python包pip3 install routes
即可Requirements ------------ The following packages are required to enable CephFS and RGW exports with nfs-ganesha: - ``nfs-ganesha``, ``nfs-ganesha-ceph``, ``nfs-ganesha-rados-grace`` and ``nfs-ganesha-rados-urls`` packages (version 3.3 and above) Ganesha Configuration Hierarchy
如果使用-DWITH_MGR_DASHBOARD_FRONTEND=OFF关了dashboard的话可以忽略这个 。
wget https://nodejs.org/dist/v16.14.2/node-v16.14.2-linux-x64.tar.xz xz -d node-v16.14.2-linux-x64.tar.xz tar -xvf node-v16.14.2-linux-x64.tar mkdir /usr/local/soft mv node-v16.14.2-linux-x64 /usr/local/soft ln -s /usr/local/soft/node-v16.14.2-linux-x64/bin/node /usr/local/bin/node ln -s /usr/local/soft/node-v16.14.2-linux-x64/bin/npm /usr/local/bin/npm npm config set registry https://registry.npmmirror.com npm install -g @angular/cli@16.2.0 ln -s /usr/local/soft/node-v16.14.2-linux-x64/lib/node_modules/@angular/cli/bin/ng.js /usr/local/bin/ng
# 复制脚本到主机 https://github.com/nvm-sh/nvm/blob/master/install.sh bash install.sh # 重新打开终端 nvm ls-remote --lts nvm install v16.14.2 npm -g install @angular/cli@16.2.10
旧版本的ceph编译dashboard会有nodejs和angular/cli版本冲突的问题 。
# /data/ceph-learning换成自己的ceph源码顶层目录 cd /data/ceph-learning/src/pybind/mgr/dashboard && vim CMakeLists.txt # 修改 COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv --verbose ${node_mirror_opt} -p --node=12.18.2 # 为 COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv --verbose ${node_mirror_opt} -p --node=16.14.2 cd /data/ceph-learning/build root@yielde:/data/ceph-learning/build# make mgr-dashboard-nodeenv Installing collected packages: nodeenv Successfully installed nodeenv-1.9.1 * Install prebuilt node (16.14.2) ..... done. * Appending data to /data/ceph-learning/build/src/pybind/mgr/dashboard/node-env/bin/activate * Appending data to /data/ceph-learning/build/src/pybind/mgr/dashboard/node-env/bin/activate.fish Built target mgr-dashboard-nodeenv
生成build后,可以先下载好 https://download.ceph.com/qa/boost_1_73_0.tar.bz2,放到/data/ceph-learning/build/boost/src目录下 。
root@yielde:/data/ceph-learning/build/boost/src# ls -lh total 105M drwxr-xr-x 2 root root 4.0K Feb 9 14:38 Boost -rw-r--r-- 1 root root 105M Feb 9 15:27 boost_1_73_0.tar.bz2 drwxr-xr-x 2 root root 4.0K Feb 9 14:55 Boost-stamp
其实棘手的问题就两个,一是网络方面众所周知的问题访问git和其他一些仓库会超时失败,二是前端相关的nodejs组件等版本问题导致编译失败。要耐心查看报错,修改CmakeList.txt或Makefile、手动下载相关软件包到目录,一步一步解决.
附一个大佬写的vscode+clangd的调试环境配置,我还没尝试:
编译调试 ceph v16.2.10 。
最后此篇关于ceph16.2.15(Pacific)编译的文章就讲到这里了,如果你想了解更多关于ceph16.2.15(Pacific)编译的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
大家好,我刚开始接触 ceph 对象存储,即 radosgateway,为此目的,已经推出了一个非常基本的单节点 ceph/daemon docker 容器,它对 s3cmd 和 java s3 AP
我正在使用 kubernetes v1.16.10 与 Ceph 13.2.2 模仿版 通过 进行动态卷配置的集群ceph-csi . 但后来我找到了 ceph-rbd Ceph RBD (kuber
我读过 this article调整 Ceph 的 block 大小可以提高其性能。那是怎么设置的? This document解释了如何设置 strip 大小。这就是第一篇文章中“ block 大小
我们使用 CEPH 集群来存储我们的虚拟机的图像。该集群包含 3 个监视器、4 个存储节点和 1 个管理员。 CEPH OSD 树 ID WEIGHT TYPE NAME UP/DOW
我正在尝试使用此处的快速入门指南设置 Ceph 存储集群:http://docs.ceph.com/docs/master/start/quick-ceph-deploy/ 当我尝试使用此命令部署管理
不久前,我们从 Ceph 集群中删除了两个损坏的 OSD,osd.0 和 osd.8。它们现在从大多数 Ceph 命令中消失了,但仍然以奇怪的设备名称出现在 CRUSH 映射中: # devices
我正在尝试使用rook在kubernetes集群上配置ceph,我已经运行了以下命令: kubectl apply -f common.yaml kubectl apply -f operator.y
我无法理解,我的 ceph 原始空间在哪里不见了。 cluster 90dc9682-8f2c-4c8e-a589-13898965b974 health HEALTH_WARN 72 pg
在 Internet 上运行 CEPH 集群时是否有任何安全问题? 我无法直接找到使其无法用于此用例的东西。我不需要低 I/O 响应时间,我很好。 谢谢你们。 最佳答案 虽然集群守护进程的身份验证由
我是 Ceph 的新用户。 我的 Ceph 服务器运行的是 12.2.5 版。它有 3 个节点,每个节点有 1 个 OSD 和 4TB HDD。 ceph.conf osd pool default
可以帮我解决以下问题。 我如何计算总可用的 ceph 存储空间。 假设我有 3 个节点,每个节点有 6 个 1TB 磁盘的 OSD。那是总共 18TB 存储(3* 6TB)。所有这些 18TB 空间都
因此Ceph在librbd中有一个用户空间页面缓存实现。它是否允许用户提及要分配给每个Pod的页面缓存量?如果是,我们可以动态更改分配吗? 最佳答案 根据项目github中的文档和问题,没有引用POD
在学习 Ceph 时,我不小心删除了 client.admin,使用 ceph auth del client.admin 现在我明白了 client.admin authentication err
我正在尝试在 Ceph Nautilus 14.2.19 上的 Centos 7 上手动创建 ceph-mds。 首先我在 /var/lib/ceph/mds 中创建了一个文件夹格式为 -mds.然后
我有一个带有 data_pool 的 66 个 OSD 的 Ceph 集群和一个 metadata_pool . 我想放置metadata_pool在 3 个具有 SSD 的特定 OSD 上,因为所有
我用 cephadm 配置了一个简单的 Ceph 集群,如下所示: cephadm bootstrap --mon-ip 192.168.0.4 ssh-copy-id -f -i /etc/ceph
我正在尝试使用 storageClass 设置我的 Kubernetescluster 和 Ceph 集群,这样每个 PVC 都会在 ceph 集群内自动创建一个新 PV。 但它不起作用。我已经尝试了
Đã có ai sử dụng thành công kubernetes để tạo một pod gắn ceph rbd vào một container docker chưa? Ví dụ sau đây từ kubernetes sử dụng Fedora với nhị phân ceph được cài đặt
嘿,我正在尝试使用 Ceph 来存储一些数据,但有一个问题,我写入 Ceph 的内容和通过 librados++ 从 Ceph 读取的内容是不一样的。 所以我有这个简单的例子: #include #
在我的本地集群(4 个 Raspberry PI)中,我尝试配置 rgw 网关。不幸的是,该服务在 2 分钟后自动消失。 [ceph_deploy.rgw][INFO ] The Ceph Obje
Tôi là một lập trình viên xuất sắc, rất giỏi!