试图将驱动程序添加到存储区_基于容器的块存储使用

4599afa13273ed24eb2bb988c677f824.png

什么是块存储?

分布式存储系统,为业务与数据在集群内漂移提供了自由保障,满足企业对于不受约束的系统环境要求。同时,平台仅保存迁移被改动的数据,而非整体增加数据量,实现增量备份。

1c482815a5a08105af35a3d4351490ec.png

魔方云块存储的功能:

  1. 每个块设备单独创建一个专用的存储控制器。每个存储控制器上只有一个volume。
  2. 根据需求自定义volume的大小,为容器和虚拟机创建块存储。
  3. 每个卷都有自己的控制器,因此我们可以为每个卷升级控制器和副本容器,而不会导致IO操作明显中断
  4. 指定备份操作的计划。可以指定这些操作的频率(例如每天、每小时等),以及执行这些操作的确切时间(你可以指定任意一个时间来执行这个操作),以及保留多少个循环快照和备份集。

78353ee26dd90be20574f7dda8bedd57.png

什么是魔方云块存储?

魔方云块存储是供Kubernetes使用的分布式块存储系统。它轻量、可靠且使用方便。用户可以使用魔方云平台简单的部署,部署后将为平台提供持久卷的能力。

该块存储系统将为每个块存储设备卷创建一个存储控制器,并在集群内进行多副本备份。同时支持快照、备份。

该系统用CSI作为驱动程序给容器提供持久卷存储

原理

魔方云块存储通过storage-engine这一轻量级的块存储设备控制器(参考网络RAID控制器)将数据存到多个副本(由linux稀疏文件支持同时支持多磁盘的高效快照)

24754b276bdea438eeeea89ab0bd96fe.png

讲解:

1.每个块设备都有自己特定的控制器控制;

2.每个块设备都将映射在管理器容器下创建的特定路径/dev/bs/vol-name,并通过特定内核驱动(open-iscsi/tgt)将读写操作转换为特定的网络请求实现数据操作;

3.控制器接受到网络请求之后将会把操作同步到所有副本;

4.控制器还将负责维持一定健康数目的副本;

5.控制器同时负责操作快照和备份,包括创建删除;

功能

A.池化多个本地或网络存储,并供特定的服务使用;

B.将所有存储卷微服务化,同时配备各自的控制器;

C.控制器控制副本,健康、创建、删除、副本数;

D.可以创建快照及备份(NFS/S3/OSS);

E.备份计划及快照计划;

性能对比

测试环境说明

1)集群环境

fc767209ec1cf0d014ad1fa98ae847a3.png

2)存储系统规格

0590099180d826d96b4404d8c0564fb6.png

3)测试工具及配置

fio 是一个专业的磁盘性能测试工具,本次测试使用该工具版本为2.2.10。

主要配置项如下:

4d8fb14da3a8804bd59c40b64ddcd6a2.png

具体测试示例:sudo fio -direct=1 -thread -size=1G -runtime=100 -group_reporting -name=test -numjobs=1 -filename=/dev/vdb -bs=4k -rw=randrw –output=vdb-1_Rrw_1-4.txt

数据对比

4K随机读/4K随机写/4K随机读写

a9faa8291ea2502a06250f26894dab18.png

6792e562b2d98ea89073ee212a34bca8.png

d1ae1c8e3ccd2bb770486ce03639586c.png

512K顺序读/512K顺序写/512K顺序读写

7b122f0c4d5fd4ebbb76202bce9855ea.png

e837d3b157470e18a9b2363c2de4cb6a.png

1c4783850e9049ba45c1760816f85c85.png

魔方云块存储操作使用

一. 部署:

在块存储部署界面如下图,可以配置默认副本数、备份设置及存储空间预留相关。

f1ec18aacade3440c4365ef77aac783a.png

二.动态申请使用:

部署成功之后,可以看见存储类下面有storagebs这个存储类,在创建有状态应用时可以选择该存储类,以下做为实例;

a) 选择部署服务,选择类型有状态

65b5a31c69249d6096b4fd7e00916a56.png

b)添加卷,如下选择存储类模版,选择存储类storagebs

c)申请成功,可以看到pvc下动态创建了:

8630b62d895298a09756cc42acc4cce6.png

三.静态申请使用:

a)创建卷:

7614b0cf9eebb980bd0a2843d169c87a.png

b)选择要操作的卷,点击操作,创建pv/pvc

eaff4739452c7faec36db904ec6f17e3.png

c)部署服务,选择添加卷–>选择现有pvc–>选择之前创建的pvc

133f72d73dec6fa3258cceb6994c15ff.png

d)等待服务正常

四.备份恢复:

确认配置了备份路径OSS/NFS/S3/后可以点击特定卷,在特定卷下可以进入操作,添加备份计划(备份或快照):

10b47f24dbb0194309aeeb6e47f4980c.png

同时支持操作并手动创建备份:

2ed08822ca90ba7323d57cc68f7a23a4.png

使用在保存在OSS/S3/NFS上的特定备份恢复数据:

de51fbddb78d4416ef5c3410da02569c.png

五.故障恢复

现在以wordpress为例子,使用魔方云块存储作为存储,看下图:

94585b7f3f5ba6e95e8ee9cf4d061c48.png


1)首先确认测试时间一致;
2)再确认wordpress的服务正常;
3)此时删除wordpress的pod模拟pod意外退出的故障,可以看到服务出现以一段时间的停止;
4)待pod在节点被拉起后,wordpress又恢复了正常

六.魔方云块存储稳定性

使用魔方云块存储作为mysql的数据存储并进行稳定性测试;
测试环境如下:
三副本,每秒写入插入数据10条;
每一小时随机删除一副本控制器(会导致副本失效);
查询插入数据是否一致;
经过数十小时,几十次的删除测试三百多万条插入,未有一次失败

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++类和对象的概念

C 是一门面向对象的编程语言,理解 C,首先要理解类(Class)和对象(Object)这两个概念。 C 中的类(Class)可以看做C语言中结构体(Struct)的升级版。结构体是一种…

参数名称 java_java – 具有重要名称的WSDL中的参数名称

我正在使用JAXWS RI在Java中创建一个WebService.在自动部署应用程序WAR时创建WSDL文件.问题是我希望WSDL文件中的参数(每个操作接收到)具有重要的名称,但它们显示为arg0,arg1,arg2 …有没有办法定义这个参数的名称,不使用默认名称?我已经实施了以下内容:…

python列表生成时 if_Python列表生成式

最简单的列表生成式l [x for x in range(10)]print(l)# 相当于l []for x in range(10):l.append(x)print(l)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9][0, 1, 2, 3, 4, 5, 6, 7, 8, 9]使用运算式的列表生成式l [x * x for x in range(10)]print(l)# 相当于l []for x in range(10):l.a…

如何编译和运行C++程序?

C 和C语言类似,也要经过编译和链接后才能运行。那么C是如何运行的呢,C和C的运行步骤是一样的。我们需要留意的是C源文件的后缀,以及GCC 中的g命令。 下图是 C/C 代码生成可执行文件的过程: C源文件的后缀 C语言源文件的后缀非…

java 控制台五子棋_java控制台五子棋

package frank;import java.io.*;public class App{//棋盘private String[][] board;//棋盘大小private static int BOARD_SIZE 15;//初始化棋盘public void initBoard(){board new String[BOARD_SIZE][BOARD_SIZE];for(int i 0; i < BOARD_SIZE; i){for(int j 0; j<…

pythonista脚本合集_GitHub - xchenhao/You-are-Pythonista: 汇聚【Python应用】【Python实训】【Python技术分享】等等...

You-are-Pythonista汇聚【从零单排】【实战项目】【Python面试题】【大航海】【Python应用】【Python错题集】【技术沙龙】【内推渠道】等等【人人都是Pythonista】由公众号【Python专栏】推出&#xff0c;请认准唯一标识&#xff1a;请仔细阅读本文档&#xff0c;尤其是使用说…

python配色_python语言再次解决文章配色难题

配色的选择是在我们论文文章画图过程中经常面临的一个问题。常用的R或python语言都内置了默认的颜色系统&#xff0c;强大的默认设置可以满足我们的绘图需求。但当我们需要绘制更多的图形时&#xff0c;固定的配色就会显得重复&#xff0c;此时通过自定义颜色就可以丰富图形的表…

java hashcode返回值_Java HashMap返回值未根据我对equals和hashcode的理解进行确认

以下代码示例的输出是&#xff1a;{1–e e2&#xff0c;2–e1 e1}package com.sid.practice;import java.util.HashMap;import java.util.Map;public class InputOutputPractice{public InputOutputPractice(){}public static void main(String[] args){Employee e new Inpu…

C++输入输出

C语言中&#xff0c;我们通常会使用 scanf 和 printf 来对数据进行输入输出操作。在C语言中&#xff0c;C语言的这一套输入输出库我们仍然能使用&#xff0c;但是 C 又增加了一套新的、更容易使用的输入输出库。 简单的输入输出代码示例&#xff1a; #include<iostream>…

python中的pymysql_(转)Python中操作mysql的pymysql模块详解

原文&#xff1a;https://www.cnblogs.com/wt11/p/6141225.htmlhttps://shockerli.net/post/python3-pymysql/----Python 3 进阶 —— 使用 PyMySQL 操作 MySQL前言pymsql是Python中操作MySQL的模块&#xff0c;其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者…

堆排序java实例_堆排序(示例代码)

前言&#xff1a;网上有很多堆排序的案例&#xff0c;我只想写自己堆排序。一&#xff1a;堆结构即&#xff1a;一个父节点最多只能有两个子节点(可以没有)&#xff0c;如下图图1图2图3 图4二&#xff1a; 数组与堆结构转换假设已知堆数组 int[] a {9,7,6,4,5,1,3,2,} 则相…

C++变量位置

C 在C语言部分做了细节上的改进&#xff0c;变量的定义位置就是其中之一。 请看下面的代码&#xff1a; #include <stdio.h> int main(){int a;scanf("%d", &a);int b;scanf("%d", &b);int c a b;printf("%d\n", c);return 0;…

java source folder作用_java项目把源码放到folder里,不是source folder,这个java代码还能被调用吗?...

看到这个问题&#xff0c;真心觉得初学入门就用IDE真心不是一个好方法。IDE屏蔽了太多基础知识&#xff0c;比如Java是需要编译的&#xff0c;运行的是编译后的class文件。编译命令有编译参数&#xff0c;执行命令有执行命令的参数。还有环境变量&#xff0c;classpath等。由于…

python 生成图片_python生成带有表格的图片

因为工作中需要&#xff0c;需要生成一个带表格的图片例如&#xff1a;直接在html中写一个table标签&#xff0c;然后单独把表格部分保存成图片或者是直接将excel中的内容保存成一个图片刚开始的思路&#xff0c;是直接生成一个带有table标签的html文件&#xff0c;然后将这个文…

C++布尔类型

C语言中&#xff0c;关系运算和逻辑运算的结果有两种&#xff0c;真和假&#xff1a;0 表示假&#xff0c;非 0 表示真。例如&#xff1a; #include <stdio.h> int main(){int a, b, flag;scanf("%d %d", &a, &b);flag a > b; //flag保存关系运算…

wpf xaml突然不能自动补齐代码_Xaml+C#桌面客户端跨平台初体验

(给DotNet加星标&#xff0c;提升.Net技能)转自&#xff1a;大头BigHeadcnblogs.com/Big-Head/p/12614118.html前言随着 .NET 5的到来&#xff0c;微软在 .NET跨平台路上又开始了一个更高的起点。回顾.NET Core近几年的成果&#xff0c;可谓是让.NET重生了一次.ASP .NET Core跨…

java实现日期让随动变_java工具类(四)之实现日期随意跳转

Java实现日期随意跳转项目开发过程中。须要进行订单提醒日期的设置。主要包含设置每月指定的日期或者指定的天数&#xff0c;代码例如以下&#xff1a;public static String DateOperation(String type, Date myDate, int num) {String date null;SimpleDateFormat formatter …

python继承和多态_Python 简明教程 --- 21,Python 继承与多态

程序不是年轻的专利&#xff0c;但是&#xff0c;它属于年轻。目录我们已经知道封装&#xff0c;继承和多态 是面向对象的三大特征&#xff0c;面向对象语言都会提供这些机制。1&#xff0c;封装在这一节介绍类的私有属性和方法的时候&#xff0c;我们已经讲到过封装。封装就是…

C++ new和delete运算符

C语言中&#xff0c;动态分配内存用 malloc() 函数&#xff0c;释放内存用 free() 函数。如下所示&#xff1a; int *p (int*) malloc( sizeof(int) * 10 ); //分配10个int型的内存空间 free(p); //释放内存在C中&#xff0c;这两个函数仍然可以使用&#xff0c;但是C又新增…

计划任务如何使用 java_java – 如何计划任务以定期间隔运行?

使用timer.scheduleAtFixedRatevoid java.util.Timer.scheduleAtFixedRate(TimerTask task, long delay, long period)scheduleAtFixedRatepublic void scheduleAtFixedRate(TimerTask task,long delay,long period)在指定的延迟后开始&#xff0c;为指定的任务调度重复的固定速…