Portworx安装和使用

Portworx安装和使用

Portworx介绍

Portworx是一家美国存储初创公司,它研发了业界第一个容器定义存储系统Portworx。Portworx提供了全新的、统一的Scale out存储栈,其核心架构是共享的、松耦合的、分布式、基于元数据的块存储层(卷、块设备、全局共享卷和文件访问等)。portworx本身作为容器服务的方式部署,在每个集群节点呈现为PX的容器。

容器的数据卷简单可以分为:本地存储、共享存储;使用本地数据卷存储,当该卷所在的机器出现故障,严重可导致数据永远丢失。
Portworx (px-dev)在各个节点上保存多份备份,可以很好解决上面的问题,并可以把各个服务器上的磁盘充分利用起来组成一个存储池。

它使用Gossip Protocol的通信方式类似流言传播,每个节点状态的变化和更新,立即通过一传十,十传百的方式在集群内广播,而不是由某几个节点逐一传递,所以通信效率非常高效。

一、环境准备

准备3个虚拟机,并额外为每个虚拟机添加一个虚拟8G的磁盘(sdb)

a.master private:10.2.22.11
b.node1 private:10.2.22.12
c.node2 private:10.2.22.13

二、准备etcd,在master机器上

//需要服务发现工具 etcd 或 consul  下载
$ wget https://github.com/coreos/etcd/releases/download/v3.0.14/etcd-v3.0.14-linux-amd64.tar.gz  //解压
$ tar -xzvf etcd-v3.0.14-linux-amd64.tar.gz//启动服务
$ cd etcd-v3.0.14-linux-amd64
$ ./etcd --name infra0 --initial-advertise-peer-urls http://10.2.22.11:2380   --listen-peer-urls http://10.2.22.11:2380   --listen-client-urls http://10.2.22.11:2379,http://127.0.0.1:2379   --advertise-client-urls http://10.2.22.11:2379   --initial-cluster-token etcd-cluster-1   --initial-cluster infra0=http://10.2.22.11:2380   --initial-cluster-state new

三、运行portworx容器

//检查存储设备: sdb磁盘
$ lsblk//创建配置文件目录:
$ mkdir -p /etc/pwx//下载样例文件:
$ wget https://raw.githubusercontent.com/portworx/px-dev/master/conf/config.json
$ cp -p config.json /etc/pwx//修改config.json
$ vim /etc/pwx/config.json
{"clusterid": "5ac2ed6f-7e4e-4e1d-8e8c-3a6df1fb61a5","kvdb": ["etcd:http://10.2.22.11:2379"],"storage": {"devices": ["/dev/sdb"]}
}//clusterid 集群的id,每台都一样
// /dev/sdb   上面lsblk 列出的磁盘//运行portworx容器:(注意需要开放一些端口,具体看日志)
$ docker pull portworx/px-dev$ docker run --restart=always --name px -d --net=host \--privileged=true                             \-v /run/docker/plugins:/run/docker/plugins    \-v /var/lib/osd:/var/lib/osd:shared           \-v /dev:/dev                                  \-v /etc/pwx:/etc/pwx                          \-v /opt/pwx/bin:/export_bin:shared            \-v /var/run/docker.sock:/var/run/docker.sock  \-v /var/cores:/var/cores                      \-v /usr/src:/usr/src                          \--ipc=host                                    \portworx/px-dev$ docker  logs px -f 查看日志//查看状态
$ /opt/pwx/bin/pxctl status //Status: PX is operational 说明成功

另为两台以同样方式启动

//docker-compose运行容器
$ git clone https://github.com/portworx/px-dev.git
$ cd px-dev/quick-start
$ docker-compose run portworx -daemon -k etcd:http://10.2.22.11:2379 -c 5ac2ed6f-7e4e-4e1d-8e8c-3a6df1fb61a5 -s /dev/sdb

四、数据共享

//创建卷, 以pxd驱动类型  
$ docker volume create -d pxd --name=redis_vol --opt fs=ext4 --opt size=1G//查看卷
$ /opt/pwx/bin/pxctl volume list//在node1上启动redis 开启数据持久化
$ docker run --name some-redis  -v redis_vol:/data --volume-driver=pxd  -d redis redis-server --appendonly yes//启动redis客户端
$ docker run -it --link some-redis:redis --rm redis redis-cli -h redis -p 6379//写入数据
$ redis:6379> set foo abcd
$ redis:6379> get foo
"abcd"//停止redis
$ docker kill some-redis//在node2上启动redis
$ docker run --name other-redis  -v redis_vol:/data --volume-driver=pxd  -d redis redis-server --appendonly yes//启动redis客户端 并进入 
$ docker run -it --link other-redis:redis --rm redis redis-cli -h redis -p 6379//查看数据,还存在
$redis:6379> get foo"abcd"//创建一个卷的快照
//查看卷
$ /opt/pwx/bin/pxctl volume list //根据redis_vol卷的ID 创建一个快照
$ /opt/pwx/bin/pxctl snap create 1013827046371938942//生成了一个卷的快照ID
Volume successfully snapped: 889729860013179865//备份好快照后,改一下数据
$ docker run -it --link other-redis:redis --rm redis redis-cli -h redis -p 6379$ redis:6379> get foo
"abcd"$ redis:6379> set foo foobar
OK$ redis:6379> get foo
"foobar"//启动redis server 指定备份的卷ID
$ docker run --name snap-redis -v 889729860013179865:/data --volume-driver=pxd -d redis redis-server --appendonly yes$ docker run -it --link snap-redis:redis --rm redis redis-cli -h redis -p 6379$ redis:6379> get foo
"abcd"
得到的数据,是当时备份的值

五、增加删除替换磁盘

//为了向节点添加更多的存储,该节点必须处于维护模式//显示系统中的驱动器列表
$ /opt/pwx/bin/pxctl service drive show  //进入维护模式
$ /opt/pwx/bin/pxctl service maintenance --enter 
输入Y
//或 
$ /opt/pwx/bin/pxctl service maintenance --enter -y//增加磁盘
$ /opt/pwx/bin/pxctl service drive add /dev/sdc//将sde替换成sdc
$ /opt/pwx/bin/pxctl service drive replace --source /dev/sde --target /dev/sdc --operation start //退出维护模式
$ /opt/pwx/bin/pxctl service maintenance --exit 

六、常用命令

//显示集群中的卷
$ /opt/pwx/bin/pxctl volume list//查看本地卷
$ docker volume ls //删除卷
/opt/pwx/bin/pxctl volume delete 卷名或ID//修改属性
$ /opt/pwx/bin/pxctl volume update redis_vol --shared=on 
$ /opt/pwx/bin/pxctl volume update redis_vol --scale=10 //查看卷信息
$/opt/pwx/bin/pxctl volume inspect redis_vol//当有个节点挂掉了,但是它占用了集群中的卷,在另一台正常机器上  用此命令分离卷
$ /opt/pwx/bin/pxctl host attach 845707146523643463(ID) 连接
$ /opt/pwx/bin/pxctl host detach 845707146523643463  分离//显示状态
$ /opt/pwx/bin/pxctl status//显示集群节点 
$ /opt/pwx/bin/pxctl cluster list //删除脱机节点
$ /opt/pwx/bin/pxctl cluster delete a56a4821-6f17-474d-b2c0-3e2b01cd0bc3 

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

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

相关文章

【webrtc】MessageHandler 8: 基于线程的消息处理:处理音频输入输出断开

m98代码,看起来m114 去掉了MessageHandler :音频的录制和播放 都使用了on message,但只是用来通知并处理流的断开的。AAudioRecorder AAudioRecorder 处理流断开 OnErrorCallback :有可能 错误回调是别处来的,是其他线程, 但是这个错误的处理要再自己的线程执行: 音频播…

Go中为什么不建议用锁?

Go语言中是不建议用锁,而是用通道Channel来代替(不要通过共享内存来通信,而通过通信来共享内存),当然锁也是可以用,锁是防止同一时刻多个goroutine操作同一个资源; GO语言中,要传递某个数据给另一个gorout…

JavaScript原型链深度剖析

目录 前言 一、原型链 1.原型链的主要组成 原型(Prototype) 构造函数(Constructor) 实例(Instance) 2.原型链的工作原理 前言 在JavaScript的世界中,原型链(Prototype Chain&…

R语言的学习——day1

将数据框中某一列数据改成行名 代码 结果

第四十八节 Java 8 Nashorn JavaScript

Nashorn 一个 javascript 引擎。 从JDK 1.8开始,Nashorn取代Rhino(JDK 1.6, JDK1.7)成为Java的嵌入式JavaScript引擎。Nashorn完全支持ECMAScript 5.1规范以及一些扩展。它使用基于JSR 292的新语言特性,其中包含在JDK 7中引入的 invokedynamic&#xff…

.net core ef 连表查询

Information和TypeInfo连表查询 类似: select st.Title1,si.* from [Star_Information] si left join Star_TypeInfo st on si.typeId2st.id 先在EfCoreDbContext.cs配置 protected override void OnModelCreating(ModelBuilder builder){base.OnModelCreating(b…

基于SSM的文物管理系统(含源码+sql+视频导入教程+文档+PPT)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的文物管理系统拥有俩种角色 管理员:个人信息管理、用户管理、分类管理、文物信息管理、文物外借管理、文物维修管理、留言板管理等 用户:登录注册、分类…

[华为OD] C卷 服务器cpu交换 现有两组服务器QA和B,每组有多个算力不同的CPU 100

题目: 现有两组服务器QA和B,每组有多个算力不同的CPU,其中A[i]是A组第i个CPU的运算能 力,B[i]是B组第i个CPU的运算能力。一组服务器的总算力是各CPU的算力之和。 为了让两组服务器的算力相等,允许从每组各选出一个CPU进行一次交换。 求两…

Linux 权限的简单讲解

1、前言 当我们分别使用 touch、mkdir 命令创建一名为 test1 的文件和名为 test2 的目录,发现其中有些参数不一样,本文就来给大家来剖析一下。 2、 参数讲解 我们可以通过切片分为下面几个区域,本文就只简单讲解文件类型、权限、所属用户、所…

github中fasttext库README官文文档翻译

参考链接:fastText/python/README.md at main facebookresearch/fastText (github.com) fastText模块介绍 fastText 是一个用于高效学习单词表述和句子分类的库。在本文档中,我们将介绍如何在 python 中使用 fastText。 环境要求 fastText 可在现代 …

http作业

综合练习:请给openlab搭建web网站 网站需求: 1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于www.openlab.com/student 网站访问学生信息…

CGAL 网格热力图

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里实现一个很有趣的功能,生成网格热力图,思路其实很简单:通过指定一个点,计算网格其他点到指定点的测地线距离,以此来为每个网格顶点进行赋色即可。 二、实现代码 //CGAL #include <CGAL/Simple_cartesi…

用HTML5实现播放gif文件

用HTML5实现播放gif文件 在HTML5中&#xff0c;你可以使用<img>标签来播放GIF文件。GIF文件本质上是一种图像格式&#xff0c;它支持动画效果&#xff0c;因此当在网页上加载时&#xff0c;它会自动播放动画。先看一个简单的示例&#xff1a; <!DOCTYPE html> &l…

Elasticsearch:探索 11 种流行的机器学习算法

作者&#xff1a;来自 Elastic Elastic Platform Team 过去几年中&#xff0c;机器学习&#xff08;ML&#xff09;已经悄然成为我们日常生活中不可或缺的一部分。它影响着从购物网站和流媒体网站上的个性化推荐&#xff0c;到保护我们的收件箱免受我们每天收到的大量垃圾邮件的…

2024年第二十六届“华东杯”(B题)大学生数学建模挑战赛|数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 让我们来看看华东杯 (B题&#xff09;&#xff01; 第一个问题…

神经网络与深度学习(四)--自然语言处理NLP

这里写目录标题 1.序列模型2.数据预处理2.1特征编码2.2文本处理 3.文本预处理与词嵌入3.1文本预处理3.2文本嵌入 3.RNN模型3.1RNN概要3.2RNN误差反传 4.门控循环单元&#xff08;GRU&#xff09;4.1GRU基本结构 5.长短期记忆网络 (LSTM) 1.序列模型 分类问题与预测问题 图像分…

K8S安装Calico节点总是NotReady

问题场景&#xff1a; 今天部署了K8S主节点&#xff0c;Master节点安装了Calico网络插件&#xff0c;在运行node列表结果是NotReady&#xff1a; [rootmaster ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master NotReady master 22h v1.19.4…

关于chatgpt的理解与探索

引言 人工智能&#xff08;AI&#xff09;的发展一直以来都备受关注&#xff0c;而自然语言处理&#xff08;NLP&#xff09;领域的进展尤其引人瞩目。ChatGPT 作为其中的一员&#xff0c;以其强大的语言理解和生成能力而备受关注。本文将深入探讨 ChatGPT 的原理、应用以及对…

显示和隐藏两个不同表格在同一个位置,列的宽度错乱。

当切换按钮&#xff0c;显示和隐藏两个不同表格在同一个位置的时候。列的宽度又是不固定的&#xff0c;会出现列宽度错乱的问题 刚开始我是用的el-table自带的doLayout()&#xff0c;并不适合用。反正我这边是不起作用的&#xff0c;不知道是不是我用错了。 1&#xff0c; 在…

java版本共存与fastjson反序列化rmi服务器的搭建

文章目录 java 8下载远程加载类工具编译工具mvn多版本共存配置mvn编译marshalsec编译rce文件利用marshalsec加载远程RCE类 java 8下载 链接&#xff1a;https://pan.baidu.com/s/1B8U9v8QAe4Vc67Q84_nqcg?pwd0000 提取码&#xff1a;0000 远程加载类工具 https://github.co…