当前位置: 首页 > news >正文

Rancher如何对接Ceph-RBD块存储

概要

演示环境说明

整个测试环境由以下2台本地虚拟机组成,相关信息说明如下:

图片描述

引言

Librbd(RBD)是Ceph提供的块存储库,其利用Rados提供的API实现对卷的管理和操作。就目前而言,在Ceph支持的三种接口Posix(CephFS)、块存储(Librbd)和对象存储(RadosGW)接口中,块存储是目前最稳定且达到生产环境要求的接口。Ceph 块设备是精简配置的、大小可调且将数据条带化存储到集群内多个OSD 。Ceph 块设备利用 RADOS 的多种能力,如快照、复制和一致性。Ceph 的 RADOS 块设备(RBD)使用内核模块或 librbd 库与 OSD 交互。

Rancher-RBD安装

Ceph 服务端安装

如果没有Ceph 服务器,可以通过容器运行一个Ceph 服务器 DEMO环境:

docker run -d --net=host -v /etc/ceph:/etc/ceph -e MON_IP=192.168.1.11  -e
CEPH_PUBLIC_NETWORK=192.168.1.0/24 ceph/demo:tag-build-master-jewel-ubuntu-16.04

IP地址根据实际情况修改。

通过scp命令,把Ceph 服务容器所在宿主机/etc/ceph路径下所有文件复制到Rancher 环境下所有节点的相同路径下。

Ceph-RBD驱动插件安装

添加自定义应用商店

进入 系统管理|系统设置 添加一个名为Ceph的自定义商店

图片描述

名称:Ceph
地址:https://github.com/niusmallna...
分支:master

RBD驱动安装

进入应用商店,搜索RBD进行安装。安装完成后:

图片描述

再进 系统架构|存储 查看,显示两个节点:

图片描述

安装测试应用

应用安装

新建一个名为myapp的空应用栈并添加myapp服务:

图片描述
图片描述

红色线框为配置重点:

使用驱动卷插件与使用本地卷驱动有所区别, 使用本地卷驱动添加卷时应该写 /AA/BB:/CC/DD,前后都要为路径; 使用驱动卷插件时应该写为 A:/BB/CC 。这个的A为一个卷名,不能是路径。

因为是Ceph存储,这里需要填卷驱动为:rancher-rbd 。部署好之后如图:

图片描述
图片描述

查看 基础架构|存储,容器卷卷名为:myapp

图片描述

数据存储测试

此时我们看到容器是运行在 :node1上,容器名为:myapp-myapp-1。

图片描述

通过执行命令登录容器,并向/root下写入test文件。

图片描述
图片描述

接着把这个服务容器删除,删除后myapp应用栈为空:

图片描述

在空应用栈中再添加一个服务,为了易于区分,重新命名为myapp2,并手动调度容器运行到node2上。

PS:新建的服务,参数中的卷名与卷映射路径必须相同,卷驱动也要相同。

图片描述
图片描述

点击创建,服务成功运行在node2上。

图片描述
图片描述

查看 基础架构|存储,容器卷卷名还为:myapp

图片描述

进入容器的/root目录查看创建的文件

图片描述

文件依然存在。此时容器是在node2上,说明文件并非保存在节点本地,证明Ceph存储对接成功。


9月27日,北京海航万豪酒店,容器技术大会Container Day 2017即将举行。

CloudStack之父、海航科技技术总监、华为PaaS部门部长、恒丰银行科技部总经理、阿里云PaaS工程总监、民生保险CIO······均已加入豪华讲师套餐!

11家已容器落地企业,15位真·云计算大咖,13场纯·技术演讲,结合实战场景,聚焦落地经验。免费参会+超高规格,详细议程及注册链接请戳

图片描述

相关文章:

  • 鹏博士前三季度营收66亿 同比增长15.24%
  • Spring根据包名获取包路径下的所有类
  • SCRUM敏捷开发规则一栏
  • mysql 下 计算 两点 经纬度 之间的距离
  • iOS-点击状态栏返回到顶部效果
  • Golang高性能json包:easyjson
  • [图像识别] 1、如何识别一个指针式的时种的时间?
  • 用标准C编写COM(一)
  • Nginx+Spring boot配置https
  • python全栈开发从入门到放弃之常用模块和正则
  • WebSphere ssl证书公钥少于2048问题处理
  • MySQL运维实战(一)之 系统变量潜规则
  • 大数运算模板(高精度)
  • ajax基础一
  • Struts2验证框架的配置及validation.xml常用的验证规则
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 03Go 类型总结
  • Angular数据绑定机制
  • HTTP那些事
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Linux后台研发超实用命令总结
  • mysql外键的使用
  • nginx 负载服务器优化
  • Node + FFmpeg 实现Canvas动画导出视频
  • PHP的类修饰符与访问修饰符
  • SpiderData 2019年2月23日 DApp数据排行榜
  • SwizzleMethod 黑魔法
  • use Google search engine
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 解决iview多表头动态更改列元素发生的错误
  • 悄悄地说一个bug
  • 使用 Docker 部署 Spring Boot项目
  • 通过几道题目学习二叉搜索树
  • 小试R空间处理新库sf
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • gunicorn工作原理
  • ![CDATA[ ]] 是什么东东
  • #if #elif #endif
  • #include<初见C语言之指针(5)>
  • #微信小程序:微信小程序常见的配置传旨
  • (06)金属布线——为半导体注入生命的连接
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (四)鸿鹄云架构一服务注册中心
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)VC++中ondraw在什么时候调用的
  • (转)一些感悟
  • ***测试-HTTP方法
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .net生成的类,跨工程调用显示注释