KVM+GFS分布式存储系统构建高可用群集

KVM+GFS 分布式存储系统构建 KVM 高可用群集

一:理论概述
1.1:Glusterfs 简介
Glusterfs 文件系统是由 Gluster 公司的创始人兼首席技术官 Anand Babu Periasamy编写。 一个可扩展的分布式文件系统, 用于大型的、 分布式的、 对大量数据进行访问的应用。
它运行于廉价的普通硬件上, 并提供容错功能。 它可以给大量的用户提供总体性能较高的服务。
Glusterfs 可以根据存储需求快速调配存储, 内含丰富的自动故障转移功能, 且摒弃集中元数据服务器的思想。
适用于数据密集型任务的可扩展网络文件系统, 免费开源。
Gluster于 2011 年 10 月 7 日被 red hat 收购。
1.2:Glusterfs 特点
Glusterfs 体系结构, 将计算、 存储和 I/O 资源聚合到全局名称空间中, 每台服务器都被视为节点, 通过添加附加节点或向每个节点添加额外存储来扩展容量。 通过在更多节点之间部署存储来提高性能。
Glusterfs 支持基于文件的镜像和复制、 分条、 负载平衡、 故障转移、 调度、 磁盘缓存、存储配额、 卷快照等。
Glusterfs 各客户端之间无连接, 本身依赖于弹性哈希算法, 而不是使用集中式或分布式元数据模型。
Glusterfs 通过各种复制选项提供数据可靠性和可用性: 复制卷、 分布卷。

4台服务器部署GFS分布式文件系统

1台服务器部署GFS客户端及KVM虚拟机搭建,4G4核

4台GFS服务器各添加一块20G的磁盘,分区并进行挂载

实验环境

主机名 / IP / 磁盘:挂载点

node01 / 192.168.107.136/ sdb1:/data_kvm

node02 / 192.168.107.137 / sdb1:/data_kvm

node03 / 192.168.107.138 / sdb1:/data_kvm

node04 / 192.168.107.139 / sdb1:/data_kvm

kvm / 192.168.107.140

关闭防火墙和selinux

systemctl disable firewalld

systemctl stop firewalld

setenforce 0

5台服务器都添加hosts文件

cat >> /etc/hosts << EOF

192.168.107.136  node01

192.168.107.137 node02

192.168.107.138 node03

192.168.107.139 node04

192.168.107.140 kvm

时间同步 yum -y install chrony

systemctl start chronyd

chronyc sources -v

1.3 部署GFS

1.1.1 node节点安装gluster

所有node节点上操作

 # 安装yum源

 [root@node1 ~]# yum -y install centos-release-gluster

 # 安装gluster相关软件

 [root@node1 ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

1.1.2 启动GlusterFS

所有node节点上操作

 [root@node1 ~]# systemctl enable   --now  glusterd

 # 出现以下错误可以尝试升级systemd和openssl

 [root@node1 ~]# yum -y install systemd openssl

 # 报错信息:

 [root@node1 ~]# systemctl status glusterd -l

 ● glusterd.service - GlusterFS, a clustered file-system server

     Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled; vendor preset: disabled)

     Active: failed (Result: exit-code) since 六 2021-07-24 15:02:18 CST; 26s ago Docs: man:glusterd(8)

 7月 24 15:02:18 node3 systemd[1]: Starting GlusterFS, a clustered file-system server...

 7月 24 15:02:18 node3 systemd[1]: glusterd.service: control process exited, code=exited status=1

 7月 24 15:02:18 node3 systemd[1]: Failed to start GlusterFS, a clustered file- system server.

 7月 24 15:02:18 node3 systemd[1]: Unit glusterd.service entered failed state.

 7月 24 15:02:18 node3 systemd[1]: glusterd.service failed.

 7月 24 15:02:20 node3 systemd[1]: [/usr/lib/systemd/system/glusterd.service:4] Unknown lvalue 'StartLimitBurst' in section 'Unit'

 7月 24 15:02:20 node3 systemd[1]: [/usr/lib/systemd/system/glusterd.service:5] Unknown lvalue 'StartLimitIntervalSec' in section 'Unit

所有node节点上都创建分区,以下以node1为例

[root@node1 ~]# fdisk   -l  /dev/sdb

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

[root@node1 ~]# fdisk   /dev/sdb

欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

命令(输入 m 获取帮助):输入n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p):

Using default response p

分区号 (1-4,默认 1):按enter

起始 扇区 (2048-41943039,默认为 2048):

将使用默认值 2048

Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):

将使用默认值 41943039

分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):w

[root@node1 ~]# fdisk   -l  /dev/sdb1

1.1.3 添加节点

仅在node1上执行以下操作,添加node1~node4节点。

 [root@node1 ~]# gluster peer probe node2

 [root@node1 ~]# gluster peer probe node3

 [root@node1 ~]# gluster peer probe node4

1.1.4 查看群集状态

通过以下命令在每个节点上查看群集状态,正常情况下每个节点的输出结果均为“State: Peer in Cluster(Connected)”。如果显示 Disconnected,请检查 hosts 文件配置

 [root@node1 ~]# gluster peer status

1.1.5 创建分布式复制卷

 # 创建分布式复制卷

 [root@node1 ~]# gluster volume create  dis-rep replica 2  node1:/data_kvm node2:/data_kvm node3:/data_kvm node4:/data_kvm force

 # 查看卷的详细信息

 [root@node1 ~]# gluster volume info dis-rep

 # 启用GlusterFS逻辑卷

 [root@node1 ~]# gluster volume start dis-rep

 # 查看卷列表,显示所有的卷

 [root@node1 ~]# gluster volume list

 ​1.2 部署Gluster客户端即kvm节点

1.2.1 安装客户端软件

 # 安装yum源

 [root@kvm ~]# yum -y install centos-release-gluster

 # 安装gluster相关软件

 [root@kvm ~]# yum -y install glusterfs glusterfs-fuse

1.2.2 创建挂载点

 [root@kvm ~]# mkdir /data_kvm

1.2.3 挂载Gluster文件系统

 # 手动挂载

 [root@kvm ~]#  mount -t glusterfs node1:dis-rep /data_kvm

 # 自动挂载

 [root@kvm ~]# vim /etc/fstab

 node1:dis-rep  /data_kvm  glusterfs  defaults,_netdev  0  0

 [root@kvm ~]# mount -a

 [root@kvm ~]# df -Th

1.3 部署kvm

1.3.1 部署KVM

仅在kvm节点部署

 # 安装需要的软件包

 [root@kvm ~]# yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager virt-viewer

 ​# 启动libvirt服务

[root@kvm ~]# systemctl enable   --now  libvirtd

# 配置桥接网络

 [root@kvm ~]# cd /etc/sysconfig/network-scripts/

 [root@kvm network-scripts]# vim ifcfg-ens33

 #IPADDR=192.168.107.140     ## 这几行注释掉

 #NETMASK=255.255.255.0

 #GATEWAY=192.168.107.2

 #DNS1=192.168.107.2

 BRIDGE=br0

 [root@kvm01 network-scripts]# vim ifcfg-br0

 TYPE=Bridge    ##类型为 桥接

 NAME=br0

 DEVICE=br0

 IPADDR=192.168.107.140

 NETMASK=255.255.255.0

 GATEWAY=172.16.10.2

 DNS1=172.16.10.2

 UUID=famjoaflajoagm75979afarw  ## 注释掉uuid

 [root@kvm01 network-scripts]# systemctl restart network

 [root@kvm01 network-scripts]#  ip  a

 # 在gluster挂载点下创建存储目录

 [root@kvm~]# mkdir /data_kvm/store

 [root@kvm ~]# mkdir /data_kvm/iso

 ​# 上传镜像并将镜像移动到/data_kvm/iso/目录下

 [root@kvm01 ~]# mv CentOS-7-x86_64-Minimal-1810.iso /data_kvm/iso/

1.3.2 创建虚拟机test01

 # 创建虚拟机

 [root@kvm01 ~]# virt-install --name test01 -r 3024 --vcpus=4 \

 --disk path=/data_kvm/store/test01.qcow2,size=10 -w bridge:br0 \

 --virt-type=kvm --accelerate --autostart  \

 -c /data_kvm/iso/CentOS-7-x86_64-Minimal-1810.iso  \

 --vnc --vncport=5901 --vnclisten=0.0.0.0  

 WARNING  无法连接到图形控制台:没有安装 virt-viewer。请安装 'virt-viewer' 软件包。

 WARNING  没有控制台用于启动客户机,默认为 --wait -1

 开始安装......

 正在分配 'test01.qcow2'                     |  10 GB  00:00:00

 ERROR    unsupported format character '奠(0xffffffe7) at index 47

 域安装失败,您可以运行下列命令重启您的域:

 'virsh start virsh --connect qemu:///system start test01'

 否则请重新开始安装。

 ​# vnc连接虚拟机进行安装

ip:192.168.107.136:5901   (注意”:”用英文输入法)

名字:test01

 ​# 安装好之后回到kvm主机上开启虚拟机test01

[root@kvm01 ~]# virsh start test01

1.3.3 验证存储

查看4台node节点上的目录里是否存在虚拟机文件

 [root@node1 ~]# ll /data_kvm/store

 总用量 4168

-rw-------. 2 root root 21478375424 8 月 29 10:40 test01.qcow2

 [root@node2 ~]# ll /data_kvm/store

 总用量 4168

 -rw-------. 2 root root 21478375424 8 月 29 10:40 test01.qcow2

 [root@node3 ~]# ll /data_kvm/store

 总用量 0

 [root@node4 ~]# ll /data_kvm/store

 总用量 0

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CrossOver 2024软件安装包下载

CrossOver不像Parallels或VMware的模拟器&#xff0c;而是实实在在Mac OS X系统上运行的一个软件。CrossOvers能够直接在Mac上运行Windows软件与游戏&#xff0c;而不需虚拟机。它为Windows软件提供所需的资源&#xff0c;以达到在Mac OS X系统上运行Windows程序的目的。 安 装…

OpenCV形态学

什么事形态学处理 基于图像形态进行处理的一些基本方法&#xff1b; 这些处理方法基本是对二进制图像进行处理&#xff1b; 卷积核决定着图像出来后的效果。 一 图像二值化 什么是二值化 将图像的每个像素变成两种值&#xff0c;如0,255. 全局二值化。 局部二值化。 thres…

【AIGC】MetaGPT原理以及应用

目录 MetaGPT原理 MetaGPT应用 MetaGPT和传统编程语言相比有什么优势和劣势 视频中的PPT 参考资料 MetaGPT原理 MetaGPT是一种多智能体框架&#xff0c;它结合了元编程技术&#xff0c;通过标准化操作程序&#xff08;SOPs&#xff09;来协调基于大语言模型的多智能体系统…

商品搬家到抖店

使用的工具为 张飞搬家&#xff0c;登录上去 张飞搬家 1 复制商品的网址 商品链接复制过去后&#xff0c;点击下面的开始批量复制 2 检查修改商品信息 价格啊、图片啊、各种商品属性啊&#xff0c;检查下&#xff0c;不合适的修改和补充 3 开始搬家 4 查看商品 打开抖店后…

数据库基础(一)

目录 一、一些基本概念 1. 四个事务隔离级别 Read Uncommitted&#xff08;读取未提交内容&#xff09; Read Committed&#xff08;读取提交内容&#xff09; Repeatable Read&#xff08;可重读&#xff09; Serializable&#xff08;可串行化&#xff09; 2. MVCC&am…

Windows运维:找到指定端口的服务

运维过windows的或多或少都遇到过需要找到一个端口对应的服务&#xff0c;或者是因为端口占用&#xff0c;或者是想看下对应的服务是哪个&#xff0c;那么如何操作呢&#xff1f;看看本文吧。 1、按照端口找到进程ID 例如想找8000端口的进程ID netstat -ano | findstr :8000 2…

大模型算法备案全网最详细说明(附附件)

本文要点&#xff1a;大模型备案最详细说明&#xff0c;大模型备案条件有哪些&#xff0c;《算法安全自评估报告》模板&#xff0c;大模型算法备案&#xff0c;大模型上线备案&#xff0c;生成式人工智能(大语言模型)安全评估要点&#xff0c;网信办大模型备案。 共分为以下几…

【Numpy】一文向您详细介绍 np.floor()

【Numpy】一文向您详细介绍 np.floor() 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本硕&#xff0c;…

【操作与配置】Pytorch环境搭建

安装显卡驱动 显卡驱动是一种软件程序&#xff0c;用于控制显卡硬件与操作系统之间的通信和交互。显卡驱动负责向操作系统提供有关显卡硬件的信息&#xff0c;以及使操作系统能够正确地控制和管理显卡的各种功能和性能。显卡驱动还包含了针对不同应用程序和游戏的优化&#xff…

python生成验证码图片,结合接口供前端调用

&#x1f308;所属专栏&#xff1a;【python】✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您的…

海外仓系统如何让海外仓受益,WMS海外仓系统使用指南

随着跨境电商业务的快速发展&#xff0c;海外仓面临着需要更加高速运转的巨大挑战。 当海外仓出现因为手动作业导致效率低下&#xff0c;成本不断飙升或者出现库存管理问题的时候&#xff0c;意味着是时候引入一套合适的海外仓管理系统了。 对于寻求海外仓业务流程优化的企业…

2779. 数组的最大美丽值

简单翻译一下题目意思&#xff1a; 对于每个 nums[i] 都可以被替换成 [nums[i]-k, nums[i]k] 区间中的任何数&#xff0c;区间左右是闭的。在每个数字可以替换的前提下&#xff0c;返回数组中最多的重复数字的数量。 第一想法是用一个哈希表&#xff0c;Key 是可以被替换的数…

设置SSHkeys多服务器免登录配置(ssh config)

一、背景&#xff1a; 多邮箱或者多git账号进行同一台电脑开发的情况。 有时候&#xff0c;开发时可能会面临一个情况&#xff0c;就是通过自己的电脑&#xff0c;可能同时需要开发多个不同地方的项目&#xff0c;或者说&#xff0c;自己建立的项目已经配置好SSH验证免密登录&a…

阿里云系列产品免费用,不香吗?

阿里云系列产品免费用&#xff0c;不香吗&#xff1f; 什么是无影云电脑开启无影云下载安装客户端登录无影云桌面应用场景 开篇先发布一下阿里云产品免费体验地址&#xff1a;https://free.aliyun.com/?utm_contentg_1000370296 下面开始我的无影云电脑或者叫做无影云桌面的体…

【scikit-learn入门指南】:机器学习从零开始

1. 简介 scikit-learn是一款用于数据挖掘和数据分析的简单高效的工具&#xff0c;基于NumPy、SciPy和Matplotlib构建。它能够进行各种机器学习任务&#xff0c;如分类、回归和聚类。 2. 安装scikit-learn 在开始使用scikit-learn之前&#xff0c;需要确保已经安装了scikit-le…

【会议征稿,IEEE出版】第六届物联网、自动化和人工智能国际学术会议(IoTAAI 2024,7月26-28)

第六届物联网、自动化和人工智能国际会议&#xff08;IoTAAI 2024&#xff09;将于2024年07月26-28日在中国广州召开。 会议旨在拓展国际科技学术交流渠道&#xff0c;搭建学术资源共享平台&#xff0c;促进全球范围内的科技创新&#xff0c;提升中外学术合作。会议还鼓励不同领…

免费的端口映射工具哪个好用

端口映射&#xff0c;即从一个网络环境下的端口映射到另一个网络环境下访问的过程。通常由软件方式来提供这一过程的实现&#xff0c;或一些客户端工具。当涉及内外网时&#xff0c;如内网端口地址映射到外网地址&#xff0c;即是内网穿透的原理。免费的端口映射工具有哪些&…

基于iBeacon蓝牙定位技术的反向寻车系统

随着城市化进程的加速和汽车保有量的不断增加&#xff0c;大型停车场成为了人们日常生活中不可或缺的一部分。然而&#xff0c;在繁忙的停车场中快速找到自己的车辆&#xff0c;成为了许多车主的难题。为了解决这一问题&#xff0c;维小帮基于iBeacon蓝牙技术打造的反向寻车系统…

C语言之常用字符串函数总结、使用和模拟实现

文章目录 目录 一、strlen 的使用和模拟实现 二、strcpy 的使用及模拟实现 三、strcat 的使用和模拟实现 四、strcmp 的使用和模拟实现 五、strncpy 的使用和模拟实现 六、strncat 的使用和模拟实现 七、strncmp 的使用和模拟实现 八、strstr 的使用和模拟实现 九、st…

Kafka中的时间轮算法

1. Kafka与时间轮&#xff1a; Kafka的定时器底层使用时间轮算法。Kafka时间轮是层次时间轮&#xff0c;并且支持时间轮复用。 优点&#xff1a; 高效的插入操作&#xff1a; 时间轮底层数据结构&#xff08;桶&#xff09;&#xff0c;使用双向链表的设计使得插入操作的时间…