KVM+GFS分布式存储系统构建高可用
一:部署GFS高可用分布式存储环境
1:安装部署 KVM 虚拟化平台
2:部署 GlusterFS
在所有节点上执行如下命令:
(1)关闭防所有节点的防火墙、SELiunx
systemctl stop firewalldsystemctl disable firewalldsetenforce 0
(2)编写 hosts 文件
[root@node1 ~]# cat<<EOF> /etc/hosts192.168.10.101 node1192.168.10.102 node2192.168.10.103 node3192.168.10.104 node4192.168.10.201 kvm01192.168.10.202 kvm02EOF
(3)安装软件
注意:先设置阿里yum仓库
[root@node1 ~]# yum -y install centos-release-gluster
[root@node1 ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
(4)启动 GlusterFS
在所有节点Gluster执行以下操作
[root@node1 ~]# systemctl start glusterd.service && systemctl enable glusterd.service
(5)在 node1 上添加所有节点
[root@node1 ~]# gluster peer probe node2peer probe: success.[root@node1 ~]# gluster peer probe node3peer probe: success.[root@node1 ~]# gluster peer probe node4peer probe: success.
(6)查看集群状态
[root@node1 ~]# gluster peer status
3:创建 GlusterFS 分布式复制卷
在所有节点创建/data
[root@node1 ~]# mkdir /data
创建分布式复制卷。
[root@node1 ~]# gluster volume create models replica 2 node1:/data node2:/data node3:/data node4:/data force
查看 models 卷
[root@node1 ~]# gluster volume info models
启动 models 卷
[root@node1 ~]# gluster volume start models
为KVM主机部署GFS存储
KVM挂载 glusterfs 卷(所有kvm主机上都配置)
安装 glusterfs 客户端软件。
[root@kvm01 ~]# yum -y install glusterfs glusterfs-fuse
创建挂载目录,并挂载 models 卷。
[root@kvm01 ~]# mkdir /kvmdata
[root@kvm01 ~]# mount -t glusterfs node1:models /kvmdata/
[root@localhost ~]# vi /etc/fstab
node1:models /kvmdata glusterfs defaults,_netdev 0 0
查看挂载卷。
[root@kvm01 ~]# df -h
在kvm01上安装虚拟机
(1)拷贝qcow2磁盘文件
[root@kvm01 ~]# cp CentOS-7-x86_64-GenericCloud-2009.qcow2 /kvmdata/test01.qcow2
(2)部署虚拟机
[root@kvm01 ~]# yum -y install libguestfs-tools
[root@kvm01 ~]# gpasswd -a qemu root
备注:
该工具提供了virt的高级命令,其中有一个virt-customize命令,可以为系统镜像设置密码。
[root@kvm01 ~]# virt-customize -a /kvmdata/test01.qcow2 --root-password password:aptech
[root@kvm01 ~]# virt-install --name=test01 -r 1024 --vcpus=1 --disk device=disk,bus=virtio,path='/kvmdata/test01.qcow2',size=10 -w bridge:br0 --virt-type=kvm --boot hd
(3)登录测试
测试实时迁移环境
配置kvm01和kvm02的无密码登录环境
[root@kvm01 ~]# ssh-keygen -t rsa[root@kvm01 ~]# ssh-copy-id kvm02[root@kvm01 ~]# ssh-copy-id kvm01[root@kvm02 ~]# ssh-keygen -t rsa[root@kvm02 ~]# ssh-copy-id kvm01[root@kvm02 ~]# ssh-copy-id kvm02
将test01虚拟机从kvm01主机迁移到kvm02主机
[root@kvm01 ~]# virsh migrate --persistent --undefinesource test01 qemu+ssh://kvm02/system[root@kvm01 ~]# virsh list --all
查看kvm02主机上的虚拟机状态
[root@kvm01 ~]# virsh --connect=qemu+ssh://kvm02/system list
将test01从kvm02主机迁移到kvm01主机
[root@kvm01 ~]# virsh --connect=qemu+ssh://kvm02/system migrate --persistent --undefinesource test01 qemu+ssh://kvm01/system
创建虚拟机资源
为配置文件创建共享目录
[root@kvm01 ~]# mkdir /kvmdata/config
将test01的配置文件拷贝到共享目录
[root@kvm01 ~]# cp /etc/libvirt/qemu/test01.xml /kvmdata/config/
取消定义test01虚拟机
[root@kvm01 ~]# virsh shutdown test01[root@kvm01 ~]# virsh undefine test01[root@kvm01 ~]# virsh list --all
重新定义test01虚拟机
[root@kvm02 ~]# virsh define /kvmdata/config/test01.xml
[root@kvm01 ~]# virsh start test01
域 test01 已开始
[root@kvm01 ~]# virsh list --all
部署群集
群集组件的安装(kvm01和kvm02都安装)
设置好阿里的基础源和epel扩展源
[root@kvm01 ~]# yum -y install pcs pacemaker fence-agents-all
[root@kvm01 ~]# passwd hacluster
[root@kvm01 ~]# systemctl start pcsd
[root@kvm01 ~]# systemctl enable pcsd
认证组成群集的节点(只在kvm01上操作)
[root@kvm01 ~]# pcs cluster auth kvm01 kvm02 -u hacluster -p aptech
自动生成配置文件(只在kvm01上操作)
[root@kvm01 ~]# pcs cluster setup --name cluster-kvm kvm01 kvm02
启动群集(只在kvm01上操作)
[root@kvm01 ~]# pcs cluster start --all
[root@kvm01 ~]# pcs cluster enable --all
在任意一个kvm主机上查看pcs群集状态
[root@kvm01 ~]# pcs status
将其中一个节点关闭,查看群集状态
[root@kvm01 ~]# pcs cluster stop kvm01
在另一个节点查看状态
[root@kvm02 ~]# pcs status
Online: [ kvm02 ]
OFFLINE: [ kvm01 ]
7:查看后再开启,让群集正常运行
[root@kvm01 ~]# pcs cluster start kvm01
关闭隔离设备的功能(每个设备都执行)
pcs property set stonith-enabled=false
向群集中添加资源
[root@kvm01 ~]# pcs resource create test01 VirtualDomain hypervisor="qemu:///system" config="/kvmdata/config/test01.xml" migration_transport=ssh meta allow-migrate="true"
查看当前群集状态
[root@kvm01 ~]# pcs status
KVM群集验证
在两台kvm主机上分别查看虚拟机状态
kvm01的状态
kvm02的状态
注意:此时虚拟机在kvm01
删除资源test01的约束
清除某个 pcs 资源只能在某个主机上运行的限制
[root@kvm01 ~]# pcs resource clear test01[root@kvm01 ~]# pcs constraint ##查询限制情况,如下显示结果为无限制Location Constraints:Ordering Constraints:Colocation Constraints:Ticket Constraints:
当把虚拟机迁移到了另一台主机,会出现约束,要想将虚拟机迁移回来,需要先清除约束
手动迁移
[root@kvm01 ~]# pcs resource move test01
kvm01上查看状态
[root@kvm01 ~]# virsh list --all[root@kvm01 ~]# pcs status
kvm02上查看状态
[root@kvm02 ~]# virsh list --all备注:
迁移后,test01运行在kvm02上
将kvm02挂起,模拟故障
如果kvm01上对test01有约束,需要在kvm01上清除约束,才能将test01迁移回来
pcs resource clear test01
查看kvm01中的状态
[root@kvm01 ~]# pcs status
[root@kvm01 ~]# virsh list --all
相关文章:
KVM+GFS分布式存储系统构建高可用
一:部署GFS高可用分布式存储环境 1:安装部署 KVM 虚拟化平台 2:部署 GlusterFS 在所有节点上执行如下命令: (1)关闭防所有节点的防火墙、SELiunx systemctl stop firewalldsystemctl disable firewallds…...

CIFAR-10 数据集图像分类与可视化
数据准备 CIFAR-10 and CIFAR-100 datasets (toronto.edu)在上述网站中下载Python版本的CIFAR-10数据集。 下载后的压缩包解压后会得到几个文件如下: 对应的data_batch_1 ~ data_batch_5 是划分好的训练数据,每个文件里包含10000张图片,test…...

没有了高项!!2024软考下半年软考高级哪个最容易考过?
距离2024上半年软考考试结束已经有一段时间了,有不少小伙伴都在开始准备下半年软考了,值得注意的是:近日各省陆续公布了2024上半年软考合格名单。那么,软考高级通过率到底如何?先来看看吧! 一、上半年软考通…...
用户自定义Table API Connector(Sources Sinks)
目录 概述 Metadata Planning Runtime 扩展点 动态表工厂(Dynamic Table Factories) 动态表(Dynamic Table) 动态表源(Dynamic Table Source) 扫描表源(Scan Table Source) 查找表源(Lookup Table Source) 动态表接收器(Dynamic Table Sink) 编码/解码…...

自闭症儿童能否摘帽?摘帽成功的秘诀揭秘
自闭症,这一曾经被视为不可逆转的障碍,如今在科学的进步与社会的关注下,正逐步展现出被“摘帽”的可能性。那么,自闭症儿童真的能完全摆脱这一标签,实现真正的“摘帽”吗?答案是肯定的,关键在于…...

主题巴巴WordPress主题合辑打包下载+主题巴巴SEO插件
主题巴巴WordPress主题合辑打包下载,包含博客一号、博客二号、博客X、门户一号、门户手机版、图片一号、杂志一号、自媒体一号、自媒体二号和主题巴巴SEO插件。...
git把本地文件上传远程仓库的流程
下载git,并创建一个仓库,这里着重介绍怎么把本地文件上传参考 正确执行步骤:在你需要上传的文件夹空白处下,右键鼠标,点击git bash here $ git init初始化当前目录 $ git status看一下当前分支里面有什么,…...

基于springboot+vue+uniapp的养老院管理系统小程序
开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…...
el-popover实现点击空白区域关闭,弹窗区域不关闭
难点: 普通方法会无法关闭,虚拟触发会导致选一个关一个,不用visible显示的方法太麻烦。 所以结合其他人的方法,使用手动监听判断的方法(点击蓝色区域看参考,这大佬vue2的,我vue3) 注…...
Disjoint Set Union
Problem One : 维护区间连通块 F - Range Connect MST (atcoder.jp) 暴力模拟的话,就是基于 Kruskal 的思想,按 c c c 从小到大排序,对于每次询问,枚举检查 j ∈ [ l , r ] j\in [l,r] j∈[l,r] ,只要 j j j 与 …...
手写 Hibernate ORM 框架 05-基本效果测试
手写 Hibernate 系列 手写 Hibernate ORM 框架 00-hibernate 简介 手写 Hibernate ORM 框架 00-环境准备 手写 Hibernate ORM 框架 01-注解常量定义 手写 Hibernate ORM 框架 02-实体 Bean 定义,建表语句自动生成 手写 Hibernate ORM 框架 03-配置文件读取, 数…...

Unity材质球自动遍历所需贴图
Unity材质球自动遍历所需贴图 文章目录 Unity材质球自动遍历所需贴图一、原理二、用法1.代码:2.使用方法 一、原理 例如一个材质球名为:Decal_Text_Cranes_01_Mat , 然后从全局遍历出:Decal_Text_Cranes_01_Albedo赋值给材质球的…...

C++那些事之结构化绑定
C那些事之结构化绑定 在聊结构化绑定之前,有几个面试问题,看看你会不会? 如何使用结构化绑定访问自定义类的私有成员?如何使用结构化绑定修改自定义类的成员呢? 这几个题目估计没几个人能答上来,题目与答案…...

ECRS工时分析软件:工业工程精益生产的智慧引擎
在工业工程学的广阔领域中,程序分析一直扮演着至关重要的角色。其中,ECRS四大原则——取消、合并、重排、简化,作为程序分析的核心,旨在通过优化生产过程,实现成本的节省和精益生产的目标。如今,随着科技的…...
大语言模型的核心岗位及其要求
一、核心岗位 研究科学家(Research Scientist): 负责制定研究计划,探索新算法和模型架构。数据科学家(Data Scientist): 进行数据收集、分析和预处理。机器学习工程师(Machine Lear…...

【屏驱MCU】RT-Thread 文件系统接口解析
本文主要介绍【屏驱MCU】基于RT-Thread 系统的文件系统原理介绍与代码接口梳理 目录 0. 个人简介 && 授权须知1. 文件系统架构1.1 虚拟文件系统目录架构 2. menuconfig 分析3. 代码接口分析3.1 DFS框架挂载目录3.2 【FAL抽象层】分区表和设备表3.3 如何将【文件路径】挂…...

进程管理工具top ps
概述 top 和 ps 是 Linux 系统中两个非常重要的用于管理和监控进程的命令工具。以下是它们的主要功能和区别: 1. 动静 2. 整体 & 详细 top: 动态视图:top 提供了一个实时动态更新的视图,能够持续显示系统中当前正在运行的进程…...

2年社招冲击字节,一天三面斩获offer
在工作满两年的时间选择了求变,带着运气和实力以社招身份重新看今天的互联网环境,从结果看还是复合预期的。 整个面试的流程还挺快的。周中让招聘专员给投递了简历。问什么时候面试,申请了一个周日,直接安排三面。下周周中就开启…...
oppo,埃科光电25届秋招,快手25届技术人才专项计划等几千家企业岗位内推
oppo,埃科光电25届秋招,快手25届技术人才专项计划等几千家企业岗位内推 ①【OPPO】25届秋招开启! 内推简历优先筛选! 【岗位类别】AI/算法类,软件类,硬件类,工程技术类,品牌策划类&a…...

【Vulnhub系列】Vulnhub Lampiao-1 靶场渗透(原创)
【Vulnhub系列靶场】Vulnhub Lampiao-1靶场渗透 原文转载已经过授权 原文链接:Lusen的小窝 - 学无止尽,不进则退 (lusensec.github.io) 一、主机发现 二、端口扫描 三、web框架 四、web渗透 1、信息收集 2、目录扫描 获得版本信息7.56 3、获取shell …...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...

Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...

针对药品仓库的效期管理问题,如何利用WMS系统“破局”
案例: 某医药分销企业,主要经营各类药品的批发与零售。由于药品的特殊性,效期管理至关重要,但该企业一直面临效期问题的困扰。在未使用WMS系统之前,其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...