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

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分布式存储系统构建高可用

一&#xff1a;部署GFS高可用分布式存储环境 1&#xff1a;安装部署 KVM 虚拟化平台 2&#xff1a;部署 GlusterFS 在所有节点上执行如下命令&#xff1a; &#xff08;1&#xff09;关闭防所有节点的防火墙、SELiunx systemctl stop firewalldsystemctl disable firewallds…...

CIFAR-10 数据集图像分类与可视化

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

没有了高项!!2024软考下半年软考高级哪个最容易考过?

距离2024上半年软考考试结束已经有一段时间了&#xff0c;有不少小伙伴都在开始准备下半年软考了&#xff0c;值得注意的是&#xff1a;近日各省陆续公布了2024上半年软考合格名单。那么&#xff0c;软考高级通过率到底如何&#xff1f;先来看看吧&#xff01; 一、上半年软考通…...

用户自定义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) 编码/解码…...

自闭症儿童能否摘帽?摘帽成功的秘诀揭秘

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

主题巴巴WordPress主题合辑打包下载+主题巴巴SEO插件

主题巴巴WordPress主题合辑打包下载&#xff0c;包含博客一号、博客二号、博客X、门户一号、门户手机版、图片一号、杂志一号、自媒体一号、自媒体二号和主题巴巴SEO插件。...

git把本地文件上传远程仓库的流程

下载git&#xff0c;并创建一个仓库&#xff0c;这里着重介绍怎么把本地文件上传参考 正确执行步骤&#xff1a;在你需要上传的文件夹空白处下&#xff0c;右键鼠标&#xff0c;点击git bash here $ git init初始化当前目录 $ git status看一下当前分支里面有什么&#xff0c…...

基于springboot+vue+uniapp的养老院管理系统小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…...

el-popover实现点击空白区域关闭,弹窗区域不关闭

难点&#xff1a; 普通方法会无法关闭&#xff0c;虚拟触发会导致选一个关一个&#xff0c;不用visible显示的方法太麻烦。 所以结合其他人的方法&#xff0c;使用手动监听判断的方法&#xff08;点击蓝色区域看参考&#xff0c;这大佬vue2的&#xff0c;我vue3&#xff09; 注…...

Disjoint Set Union

Problem One : 维护区间连通块 F - Range Connect MST (atcoder.jp) 暴力模拟的话&#xff0c;就是基于 Kruskal 的思想&#xff0c;按 c c c 从小到大排序&#xff0c;对于每次询问&#xff0c;枚举检查 j ∈ [ l , r ] j\in [l,r] j∈[l,r] &#xff0c;只要 j j j 与 …...

手写 Hibernate ORM 框架 05-基本效果测试

手写 Hibernate 系列 手写 Hibernate ORM 框架 00-hibernate 简介 手写 Hibernate ORM 框架 00-环境准备 手写 Hibernate ORM 框架 01-注解常量定义 手写 Hibernate ORM 框架 02-实体 Bean 定义&#xff0c;建表语句自动生成 手写 Hibernate ORM 框架 03-配置文件读取, 数…...

Unity材质球自动遍历所需贴图

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

C++那些事之结构化绑定

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

ECRS工时分析软件:工业工程精益生产的智慧引擎

在工业工程学的广阔领域中&#xff0c;程序分析一直扮演着至关重要的角色。其中&#xff0c;ECRS四大原则——取消、合并、重排、简化&#xff0c;作为程序分析的核心&#xff0c;旨在通过优化生产过程&#xff0c;实现成本的节省和精益生产的目标。如今&#xff0c;随着科技的…...

大语言模型的核心岗位及其要求

一、核心岗位 研究科学家&#xff08;Research Scientist&#xff09;&#xff1a; 负责制定研究计划&#xff0c;探索新算法和模型架构。数据科学家&#xff08;Data Scientist&#xff09;&#xff1a; 进行数据收集、分析和预处理。机器学习工程师&#xff08;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 系统中两个非常重要的用于管理和监控进程的命令工具。以下是它们的主要功能和区别&#xff1a; 1. 动静 2. 整体 & 详细 top&#xff1a; 动态视图&#xff1a;top 提供了一个实时动态更新的视图&#xff0c;能够持续显示系统中当前正在运行的进程…...

2年社招冲击字节,一天三面斩获offer

在工作满两年的时间选择了求变&#xff0c;带着运气和实力以社招身份重新看今天的互联网环境&#xff0c;从结果看还是复合预期的。 整个面试的流程还挺快的。周中让招聘专员给投递了简历。问什么时候面试&#xff0c;申请了一个周日&#xff0c;直接安排三面。下周周中就开启…...

oppo,埃科光电25届秋招,快手25届技术人才专项计划等几千家企业岗位内推

oppo&#xff0c;埃科光电25届秋招&#xff0c;快手25届技术人才专项计划等几千家企业岗位内推 ①【OPPO】25届秋招开启&#xff01; 内推简历优先筛选&#xff01; 【岗位类别】AI/算法类&#xff0c;软件类&#xff0c;硬件类&#xff0c;工程技术类&#xff0c;品牌策划类&a…...

【Vulnhub系列】Vulnhub Lampiao-1 靶场渗透(原创)

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

AI智能应用开发(Java)从起点到终点-面向对象

自定义对象Java中自定义对象的必要性就像我们之前用的Scanner 和Random 都是java里面已经写好的对象&#xff0c;直接拿来用就好了&#xff0c;不用再自己写一大串代码来实现键盘录入和随机数的需求&#xff0c;但是有些需求是java中没有定义和写好的&#xff0c;&#xff0c;但…...

Qwen3-14B-Int4-AWQ助力运维智能化:日志分析与故障排查实战

Qwen3-14B-Int4-AWQ助力运维智能化&#xff1a;日志分析与故障排查实战 1. 运维工程师的日常痛点 凌晨三点&#xff0c;你的手机突然响起。系统告警显示某核心服务出现异常&#xff0c;你需要立即登录服务器查看日志。面对几十GB的日志文件&#xff0c;你不得不用grep、awk等…...

uniapp圆环进度条组件实战:从零到一打造个性化数据展示

Uniapp圆环进度条组件实战&#xff1a;从零到一打造个性化数据展示 在移动应用开发中&#xff0c;数据可视化是提升用户体验的关键因素之一。圆环进度条作为一种直观的数据展示方式&#xff0c;广泛应用于健身追踪、学习进度、任务完成度等场景。Uniapp作为跨平台开发框架&…...

DAMOYOLO-S效果展示:低光照、模糊、遮挡图像下的鲁棒检测能力

DAMOYOLO-S效果展示&#xff1a;低光照、模糊、遮挡图像下的鲁棒检测能力 1. 引言&#xff1a;当目标检测遇上“坏天气” 想象一下&#xff0c;你正在开发一个智能安防摄像头系统&#xff0c;或者一个自动驾驶的视觉模块。白天光线充足、画面清晰的时候&#xff0c;一切都很完…...

跨平台B站工具箱:BiliTools让你的视频下载体验焕然一新

跨平台B站工具箱&#xff1a;BiliTools让你的视频下载体验焕然一新 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持视频、音乐、番剧、课程下载……持续更新 项目地址: https://gitcode.com/GitHub_Trending/bilit/Bil…...

STM32智能婴儿床系统设计与实现

基于STM32的智能婴儿床系统设计1. 项目概述1.1 系统架构本智能婴儿床系统采用模块化设计架构&#xff0c;以STM32F103RCT6微控制器为核心处理单元&#xff0c;集成多种传感器模块和执行机构。系统通过蓝牙与手机APP建立双向通信&#xff0c;实现环境参数监测、异常报警和远程控…...

PHP 8.5 升级生存指南:避免凌晨两点回滚的检查清单

定目标版本&#xff0c;定义内部支持策略在动 CI 或 Composer 之前&#xff0c;先回答一个问题&#xff1a;在你的组织里&#xff0c;这次升级"完成"意味着什么&#xff1f;确定目标和截止日期PHP 分支有两年的活跃支持&#xff0c;然后是两年的安全修复。官方支持表…...

OpenClaw资源监控方案:Qwen3-32B镜像驱动服务器健康巡检

OpenClaw资源监控方案&#xff1a;Qwen3-32B镜像驱动服务器健康巡检 1. 为什么需要AI驱动的资源监控&#xff1f; 去年我的个人开发服务器连续宕机三次&#xff0c;每次都是因为磁盘写满导致服务崩溃。传统监控工具虽然能发出警报&#xff0c;但往往在问题发生后才会触发&…...

AI 开发实战:AI 成本监控怎么做,团队才不会越用越贵

AI 开发实战&#xff1a;AI 成本监控怎么做&#xff0c;团队才不会越用越贵 一、这个问题为什么值得专门拿出来做&#xff1f; 在 AI 工程落地里&#xff0c;真正拖慢团队的往往不是模型本身&#xff0c;而是流程和协作方式没有跟上。 围绕“AI 成本监控怎么做&#xff0c;团…...

XU9232A可穿戴设备 电池供电设备 便携式医疗设备

这是一款高度集成的升压转换器&#xff0c;为输出高电压和高效率的应用方案而设计。输入电源可以从一个锂电池或二节串联的碱性电池&#xff0c;而升压到最高18V&#xff1b;工作频率为 1.2MHz&#xff08;典型值&#xff09;。内置典型4A开关晶体管&#xff0c;其组成 DC/DC 升…...