kubernetes ceph-csi分析目录导航 概述 下面的分析是k8s通过ceph-csi(csi plugin)接入ceph存储(csi相关组件的分析以rbd为例进行分析),对csi系统结构.所涉及的k8s对象与组件进行了简单的介绍,以及k8s对存储进行相关操作的流程分析,存储相关操作包括了存储创建.存储扩容.存储挂载.解除存储挂载以及存储删除操作. csi系统结构 这是一张k8s csi的系统架构图,图中所画的组件以及k8s对象,接下来会一一进行分析. csi简介 CSI是Contai…
一.在ceph集群上操作: 1.创建池(主要使用存储类来进行持久卷的挂载,其他的挂载方式不好使也太麻烦):ceph osd pool create k8s 64 二.在k8s上操作: 1.安装客户端(客户端版本与ceph集群的版本最好一致,不然创建image的时候死活创建不了): 给yum增加一个Ceph源(这里以网易源为例). tee /etc/yum.repos.d/ceph.repo <<-'EOF' [Ceph] name=Ceph packages for $basearch bas…
0x00 概述 本文章介绍如何使用ceph为k8s提供动态申请pv的功能.ceph提供底层存储功能,cephfs方式支持k8s的pv的3种访问模式ReadWriteOnce,ReadOnlyMany ,ReadWriteMany ,RBD支持ReadWriteOnce,ReadOnlyMany两种模式 访问模式只是能力描述,并不是强制执行的,对于没有按pvc声明的方式使用pv,存储提供者应该负责访问时的运行错误.例如如果设置pvc的访问模式为ReadOnlyMany ,pod挂载后依然可写,如果…
k8s使用rbd作后端存储 k8s里的存储方式主要有三种.分别是volume.persistent volumes和dynamic volume provisioning. volume: 就是直接挂载在pod上的组件,k8s中所有的其他存储组件都是通过volume来跟pod直接联系的.volume有个type属性,type决定了挂载的存储是什么,常见的比如:emptyDir,hostPath,nfs,rbd,以及下文要说的persistentVolumeClaim等.跟docker里面的vol…
k8s informer概述 我们都知道可以使用k8s的Clientset来获取所有的原生资源对象,那么怎么能持续的获取集群的所有资源对象,或监听集群的资源对象数据的变化呢?这里不需要轮询去不断执行List操作,而是调用Watch接口,即可监听资源对象的变化,当资源对象发生变化,客户端即可通过Watch接口收到资源对象的变化. Watch接口虽然可以直接使用,但一般情况下很少直接使用,因为往往由于集群中的资源较多,我们需要自己在客户端去维护一套缓存,而这个维护成本比较大. 也是因为如此,clie…
Ceph RBD  CephFS 存储 环境准备: (这里只做基础测试, ceph-manager , ceph-mon, ceph-osd 一共三台) 10.6.0.140 = ceph-manager 10.6.0.187 = ceph-mon-1 10.6.0.188 = ceph-osd-1 10.6.0.94 = node-94 注: ceph 对时间要求很严格, 一定要同步所有的服务器时间 一.在 manager 上面修改 /etc/hosts : 10.6.0.187 ceph-m…
一.Ceph整体架构及RGW在Ceph中的位置 1.Ceph的整体架构 Ceph是一个统一的.分布式的的存储系统,具有优秀的性能.可靠性和可扩展性.Ceph支持对象存储(RADOSGW).块存储(RBD)和文件存储(CephFS).一个Ceph存储集群至少包含一个Ceph monitor.Ceph manager及Ceph OSD(Object Store Daemon).若要运行CephFS client,还需要Ceph metadata server.以下是Ceph的整体架构图: 由上面的架…
ceph RadosGW对象存储使用详解 一个完整的ceph集群,可以提供块存储.文件系统和对象存储. 本节主要介绍对象存储RadosGw功能如何灵活的使用,集群背景: $ ceph -s cluster: id: f0a8789e-6d53-44fa-b76d-efa79bbebbcf health: HEALTH_OK services: mon: 1 daemons, quorum a (age 2d) mgr: a(active, since 2d) mds: cephfs:1 {0=c…
http://www.cnblogs.com/sennly/p/4136734.html 各种云服务这两年炒的火热,加之可以降低成本,公司想先在部分业务上尝试使用下,刚好最近有个项目有大量小文件需要存储,借着这个机会,研究分析下自建存储与使用第三方云存储,如果小规模试用后满意的话,会将更多的业务迁移到公有云上去. 一般而言存储功能我们会关注方案的功能可靠性及综合使用成本两大方面. 功能可靠性包含: Ø 服务稳定性 Ø 服务性能 Ø 服务可扩展性 Ø 数据安全性 综合使用成本包含: Ø 存储设备费…
问题背景描述: 在MySQL中执行SQL语句,比如insert,贼慢,明明可能也就只是一行数据的插入,数据量很小,但是耗费的时间却很多,为什么? 一.存储结构分析 MySQL存储结构图: 解析: 1.读操作:内存读-->cache缓存读-->磁盘物理读 读取到的数据会按上述顺序往回送. 2.写操作:内存数据直接写入cache缓存(非常快)-->写入disk 由上可知,MySQL之所以读写速度快,cache在其中起到了关键作用. 1.Cache缓存特点: 1.速度快 2.掉电数据丢失 3.…
前提条件:已经部署好ceph集群 本次实验由于环境有限,ceph集群是部署在k8s的master节点上的 一.创建ceph存储池 在ceph集群的mon节点上执行以下命令: ceph osd pool create k8s-volumes 64 64 查看下副本数 [root@master ceph]# ceph osd pool get k8s-volumes size size: pg的设置参照以下公式: Total PGs = ((Total_number_of_OSD * ) / max…
目录 ceph配置 k8s 配置 通过静态pv,pvc使用ceph 测试多pod挂载静态pv数据不一致问题 StoragaClass 方式 ceph 常用命令 k8s 常用命令 k8s各类端口及IP说明 端口说明 问题 PV访问模式 测试结果 参考 ceph配置 rbd create --size 100 rbd/nginx-image [root@localhost my-cluster]# rbd list nginx-image [root@localhost my-cluster]# r…
1.在ceph集群中创建rbd存储池.镜像及普通用户 1.1.存储池接镜像配置 创建存储池 root@u20-deploy:~# ceph osd pool create rbd-test-pool1 32 32 在创建的存储池上启用块存储 root@u20-deploy:~# ceph osd pool application enable rbd-test-pool1 rbd enabled application 'rbd' on pool 'rbd-test-pool1' 对存储池进行初…
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485232&idx=1&sn=ff0e93b91432a68699e0e00a96602b78&chksm=e9fdd2c4de8a5bd22d4801cf35f78ffd9d7ab95b2a254bc5a4d181d9247c31c9b2f5485d4b74&scene=178&cur_album_id=160084541737…
第一章.前言 默认情况下容器的数据都是非持久化的, 在容器消亡以后数据也跟着丢失, 所以 Docker 提供了 Volume 机制以便将数据持久化存储. 类似的, Kubernetes 提供了更强大的 Volume 机制和丰富的插件, 解决了容器数据持久化和容器间共享数据的问题. 与 Docker 不同, Kubernetes Volume 的生命周期与 Pod 绑定容器挂掉后 Kubelet 再次重启容器时, Volume 的数据依然还在而 Pod 删除时, Volume 才会清理. 数据是否…
所有节点安装nfs yum install nfs-utils rpcbind -y mkdir -p /ifs/kubernetes echo "/ifs/kubernetes 192.168.x.0/24(rw,sync,no_root_squash)" >> /etc/exports 仅在nfs服务器上 systemctl start rpcbind nfs 节点测试没问题即可 可以参考下以前写的: http://blog.csdn.net/iiiiher/artic…
参考文档: Github project:https://github.com/heketi/heketi MANAGING VOLUMES USING HEKETI:https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/administration_guide/ch05s02 StorageClass:https://kubernetes.io/docs/concepts/storage/s…
https://www.oschina.net/news/49048/gluster-vs-ceph 引言:开源存储软件Ceph和Gluster能够提供相似的特性并且能够为用户节省不小的开支.那么谁更快?谁又更易用呢? 开源的Ceph及Red Hat旗下的Gluster都是成熟的技术,但兴许不久之后就将经历某种重生了.随着存储产业开始向扩展性存储及云的方向发展,将不断会有基于这些低价的软件技术的产品推向市场,而对这些自集成解决方案的补充在近一年来不断涌现. Ceph与Gluster在原理上有着本…
块设备与 OPENSTACK 通过 libvirt 你可以把 Ceph 块设备用于 OpenStack ,它配置了 QEMU 到 librbd 的接口. Ceph 把块设备映像条带化为对象并分布到集群中,这意味着大容量的 Ceph 块设备映像其性能会比独立服务器更好. 要把 Ceph 块设备用于 OpenStack ,必须先安装 QEMU . libvirt 和 OpenStack .我们建议用一台独立的物理主机安装 OpenStack ,此主机最少需 8GB 内存和一个 4 核 CPU .下面…
Tgtd+Ceph部署 一.yum安装tgt [root@c720181 ~]# yum --enablerepo=epel -y install scsi-target-utils libxslt (1)安装 scsi-target-utils 安装 scsi-target-utils # yum --enablerepo=epel -y install scsi-target-utils libxslt 查看版本 # tgtadm --version 1.0.55 (2)启动 tgtd 服务…
在ceph监视器上执行 CINDER_PASSWD='cinder1234!'controllerHost='controller'RABBIT_PASSWD='0penstackRMQ' 1.创建pool池 为cinder-backup服务创建pool池(因为我只有一个OSD节点,所以要将副本数设置为1)ceph osd pool create cinder-backup 32ceph osd pool set cinder-backup size 1 ceph osd pool applic…
在ceph监视器上执行 CINDER_PASSWD='cinder1234!'controllerHost='controller'RABBIT_PASSWD='0penstackRMQ' 1.创建pool池 为cinder-volume服务创建pool池(因为我只有一个OSD节点,所以要将副本数设置为1)ceph osd pool create cinder-volumes 32ceph osd pool set cinder-volumes size 1 ceph osd pool appl…
一.对象存储 1.1 介绍 通过对象存储,将数据存储为对象,每个对象除了包含数据,还包含数据自身的元数据 对象通过Object ID来检索,无法通过普通文件系统操作来直接访问对象,只能通过API来访问,或者第三方客户端(实际上也是对API的封装) 对象存储中的对象不整理到目录树中,而是存储在扁平的命名空间中,Amazon S3将这个扁平命名空间称为bucket.而swift则将其称为容器 无论是bucket还是容器,都不能嵌套 bucket需要被授权才能访问到,一个帐户可以对多个bucket授权…
一.rbd块存储挂载 1 创建一个OSD pool # ceph osd pool create rbd1 128 查询存储空间使用 # ceph df GLOBAL: SIZE AVAIL RAW USED %RAW USED 480GiB 474GiB 6.12GiB 1.28 POOLS: NAME ID USED %USED MAX AVAIL OBJECTS volumes 1 134B 0 150GiB 5 vms 2 0B 0 150GiB 0 images 3 0B 0 150G…
随着业务的扩展,原有的存储池不够用了,这时我们就需要给ceph添加新的存储节点,这里以新加ceph-host-05节点为例   准备工作 给所有节点hosts文件添加10.30.1.225 ceph-host-05,并修改ceph-host-05的/etc/hosts节点如下 [root@ceph-host-05 ~]# cat /etc/hosts 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdo…
在ceph监视器上执行 1.创建pool池 为nova服务创建pool池(因为我只有一个OSD节点,所以要将副本数设置为1) ceph osd pool create nova-vms 32 ceph osd pool set nova-vms size 1 ceph osd pool application enable glance-images rbd 2.查看pool池的使用情况 ceph df 3.创建账号 ceph auth get-or-create client.nova-vms…
在ceph监视器上执行 1.创建pool池 为glance服务创建pool池(因为我只有一个OSD节点,所以要将副本数设置为1) ceph osd pool create glance-images  32 ceph osd pool set glance-images size 1 ceph osd pool application enable glance-images rbd 2.查看pool池的使用情况 ceph df 3.创建账号 ceph auth get-or-create cl…
Apollo镜像服务 基于开源Apollo服务进行相关服务镜像打包,实际将分发apollo-adminservice.apollo-configservice和apollo-portal 这三个镜像安装包. 一. 部署安装 1. config服务 首先我们需要提供对应的配置文件并将其映射到对应的镜像的目录下,首先我们 编写对应的配置文件(application-github.properties): spring.datasource.url = jdbc:mysql://fill-in-the…
kubelet注册csi driver分析 kubelet注册csi driver的相关功能代码与kubelet的pluginManager有关,所以接下来对pluginManager进行分析.分析将分为pluginManager的初始化分析以及pluginManager的运行(处理逻辑)分析. 基于tag v1.17.4 https://github.com/kubernetes/kubernetes/releases/tag/v1.17.4 kubelet注册csi driver的原理 ku…
视频分析的需求 人工智能的发展和在行业中的作用就不用多说了,已经到了势在必行的一个程度了,尤其是对于流媒体音视频行业来说,这基本上是人工智能重中之重的领域,视频人工智能,也就是视频视觉分析的应用方式大体上可以分为两种: 中心计算:所有视频图像数据都以图片或者视频编码流的形式传输到中心服务,再由中心服务进行视频数据的分析,这种模式比较考验中心服务的网络能力和中心硬件的算力: 边缘计算:将大部分的计算工作都在边缘设备中完成,比如人脸.车牌.物体.行为等的分析和比对,这种做法相比于中心计算的优势是不不…