AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1166205
Accepted
Tintin
Tintin
Asked: 2024-10-06 08:53:26 +0800 CST2024-10-06 08:53:26 +0800 CST 2024-10-06 08:53:26 +0800 CST

将 Ceph OSD 守护进程迁移至新服务规范

  • 772

我有一个服务规范,将所有空闲的 SSD 分配给 OSD:

service\_type: osd  
service\_id: dashboard-tintin-7634852880  
service\_name: osd.dashboard-tintin-7634852880  
placement:  
  host\_pattern: '*'  
spec:  
  data\_devices:  
rotational: false  
  filter\_logic: AND  
  objectstore: bluestore

我希望对每台服务器分配的驱动器有更好的控制权,因此我创建了一些新的规范,如下所示:

service_type: osd  
service_id: dashboard-tintin-1715222958508  
service_name: osd.dashboard-tintin-1715222958508  
placement:  
  host_pattern: 'host1'  
spec:  
  data_devices:  
rotational: false  
  filter_logic: AND  
  objectstore: bluestore

在 Ceph Dashboard -> Services 中,我可以看到我的旧 OSD 守护进程继续在旧服务定义的控制下运行。我删除了旧的服务定义。我收到警告:

If osd.dashboard-tintin-7634852880 is removed the the following OSDs will remain, --force to proceed anyway ...

我认为让守护进程继续运行是我想要的,因此我继续使用--force。现在 Ceph 仪表板 -> 服务列出了 OSD 和“未管理”,而新的服务定义仍然没有选择它们。我如何在新的服务规范下移动这些 OSD 守护进程?

如果我停止守护进程,新的守护进程将不会按照新的服务定义启动。如果我重新部署守护进程,它们仍会显示为“未管理”。我让它们按照新的服务定义运行的唯一方法是停止守护进程并清除驱动器。然而,考虑到集群的大小,这不是一个实用的解决方案。

鉴于数据是存在的并且是正确的,我很惊讶没有办法让流浪守护进程恢复。(我查看了有关流浪守护进程的文档,但它们仅参考了将集群升级到 cephadm 的上下文)。

这是我的一部分ceph orch ls osd --export:

service_type: osd
service_id: dashboard-tintin-1706434852880
service_name: osd.dashboard-tintin-1706434852880
unmanaged: true
spec:
  filter_logic: AND
  objectstore: bluestore
---
service_type: osd
service_id: dashboard-tintin-1715222958508
service_name: osd.dashboard-tintin-1715222958508
placement:
  host_pattern: ceph-pn-osd1
spec:
  data_devices:
    rotational: false
  filter_logic: AND
  objectstore: bluestore
---
service_type: osd
service_id: dashboard-tintin-1712545397532
service_name: osd.dashboard-tintin-1712545397532
placement:
  host_pattern: ceph-pn-osd2
spec:
  data_devices:
    rotational: false
  filter_logic: AND
  objectstore: bluestore
---
service_type: osd
service_id: dashboard-tintin-1706421419210
service_name: osd.dashboard-tintin-1706421419210
placement:
  host_pattern: ceph-pn-osd3
spec:
  data_devices:
    rotational: false
  filter_logic: AND
  objectstore: bluestore
---
service_type: osd
service_id: dashboard-tintin-1706421419211
service_name: osd.dashboard-tintin-1706421419211
placement:
  host_pattern: ceph-pn-osd4
spec:
  data_devices:
    rotational: false
  filter_logic: AND
  objectstore: bluestore
---
service_type: osd
service_id: dashboard-tintin-1706425693555
service_name: osd.dashboard-tintin-1706425693555
placement:
  host_pattern: ceph-pn-osd5
spec:
  data_devices:
    rotational: false
  filter_logic: AND
  objectstore: bluestore
ceph
  • 1 1 个回答
  • 36 Views

1 个回答

  • Voted
  1. Best Answer
    eblock
    2024-10-08T15:00:41+08:002024-10-08T15:00:41+08:00

    一种方法是修改unit.runOSD 文件并将其指向service_name您想要的:

    head -2 /var/lib/ceph/{FSID}/osd.{OSD_ID}/unit.meta  
    {
        "service_name": "osd.my-osd-service",
    

    根据 Orchestrator 的刷新间隔,修改的内容service_name将在几分钟后显示出来。这看起来可能有点不靠谱,但由于不清楚为什么您当前的 OSD 服务规范似乎不起作用,因此这可能是一个合理的解决方法。

    • 0

相关问题

  • Ceph RGW 16.2.7 CLI 更改

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve