Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带docker卷的ceph rbd_Docker_Docker Volume_Ceph - Fatal编程技术网

带docker卷的ceph rbd

带docker卷的ceph rbd,docker,docker-volume,ceph,Docker,Docker Volume,Ceph,我刚刚在两个不同的服务器中初始化了一个ceph实例 cluster 241b5d19-15f5-48be-b98c-285239d70038 health HEALTH_WARN 64 pgs degraded 64 pgs stuck degraded 64 pgs stuck unclean 64 pgs stuck undersized 64 pgs undersized monmap e3: 2 mons

我刚刚在两个不同的服务器中初始化了一个ceph实例

cluster 241b5d19-15f5-48be-b98c-285239d70038
 health HEALTH_WARN
        64 pgs degraded
        64 pgs stuck degraded
        64 pgs stuck unclean
        64 pgs stuck undersized
        64 pgs undersized
 monmap e3: 2 mons at {serv1=10.231.69.9:6789/0,serv2=10.231.69.34:6789/0}
        election epoch 6, quorum 0,1 serv1,serv2
    mgr no daemons active
 osdmap e10: 2 osds: 2 up, 2 in
        flags sortbitwise,require_jewel_osds,require_kraken_osds
  pgmap v22: 64 pgs, 1 pools, 0 bytes data, 0 objects
        68292 kB used, 1861 GB / 1861 GB avail
              64 active+undersized+degraded
只有
mon
osd
(我不设置
mds
rgw
cepfs

我会使用
rbd
为容器卷创建持久化共享存储,但是我真的很困惑如何在docker中插入我的
osd

我看到一些rbd docker插件存在:

  • 但似乎没有一个与最新的docker版本兼容,或者至少与
    =1.13
    兼容

    因此,我问自己如何才能实现我想要的,一些解决方案浮现在我的脑海中,但我真的不确定哪一个是最好的(或者即使它是可能的)

  • 使用
    cepfs
    +标准docker文件系统安装卷
  • 使用
    rexray
    flocker
    不再维护)
  • 安装Ceph对象网关S3并使用现有docker
    S3
    插件
  • 其他的
  • 但是1。解决方案似乎不美观,在更大的环境(超过2台服务器)中更难管理

    鉴于2。解决方案似乎是一个很好的起点,但有人有反馈吗

  • 您可以使用用于RBD卷的v2插件扩展Docker引擎
  • 与Docker Engine v2插件系统配合使用。(我们在Swarm集群中使用它)

    以下是自述文件的摘录:

    安装插件: 创建卷: 使用rbd卷运行容器:
    从您提供的
    ceph-s
    的输出来看,似乎您创建了一个包含两个节点的ceph集群,每个节点都有一个osd。默认情况下,ceph使用的大小(复制次数)为3。这是建议的值。您可以将大小更改为2,将最小大小更改为1,但将此设置用于除ceph游乐场之外的任何其他用途都被认为是不明智的,除非数据对您毫无价值

    Ceph至少应在相同配置的至少3个节点上运行。相同包括:CPU、RAM、OSD计数(每个CPU核心一个OSD)。
    对于中等流量,也可以将mons放在这三个节点上。强烈建议使用10GBit节点互连。

    阅读本卷驱动程序自述后,我仍然不了解该驱动程序的用法。我的意思是,它不允许为3个副本装载相同的卷,那么它有什么意义呢?拥有无法扩展的有状态应用程序是根本不可能的。它可以将卷装载到ceph共享中的同一个文件夹中,也就是说,ceph将自己处理写锁。如果要进行生产级部署,所有副本必须能够同时读取卷。
    docker plugin install wetopi/rbd \
      --alias=wetopi/rbd \
      LOG_LEVEL=1 \
      RBD_CONF_POOL="ssd" \
      RBD_CONF_CLUSTER=ceph \
      RBD_CONF_KEYRING_USER=client.admin
    
    docker volume create -d wetopi/rbd -o size=206 my_rbd_volume
    
    docker volume ls
    DRIVER              VOLUME NAME
    local               069d59c79366294d07b9102dde97807aeaae49dc26bb9b79dd5b983f7041d069
    local               11db1fa5ba70752101be90a80ee48f0282a22a3c8020c1042219ed1ed5cb0557
    local               2d1f2a8fac147b7e7a6b95ca227eba2ff859325210c7280ccb73fd5beda6e67a
    wetopi/rbd          my_rbd_volume
    
    docker run -it -v my_rbd_volume:/data --volume-driver=wetopi/rbd busybox sh