当前位置: 首页 > 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 …...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...

2.3 物理层设备

在这个视频中&#xff0c;我们要学习工作在物理层的两种网络设备&#xff0c;分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间&#xff0c;需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质&#xff0c;假设A节点要给…...

电脑桌面太单调,用Python写一个桌面小宠物应用。

下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡&#xff0c;可以响应鼠标点击&#xff0c;并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...