• 网站导航

分布式kvm系统(分布式存储)

更新时间:2021-09-17 14:17:01 来源:  网络
近期可能很多人都在关注分布式kvm系统相关的内容,今日小编也是在网上找了很多关于 分布式kvm系统 相关信息并整理如下,希望对大家有所帮助:

技能目标:

· 学会部署kvm+gfs分布式存储高可用

2.1 案例分析

2.1.1 案例概述

本章案例主要使用之前章节所学的KVM及Glusterfs技术,结合起来从而达到kvm高可用。利用Glusterfs的分布式复制卷,对kvm虚拟机文件进行分布存储和冗余功能。分布式复制卷主要用于需要冗余的情况下把一个文件存放在两个或以上的节点上,当其中一个节点数据丢失或者损坏之后,kvm仍然能够通过卷组找到另一节点上的虚拟机文件,保证虚拟机正常运行。当节点修复之后,Glusterfs会自动同步同一组里面有数据的节点数据

2.1.2 案例前置知识点

1.Glusterfs简介

Glusterfs文件系统是由Gluster公司的创始人兼首席技术官Anand Babu Periasamy编写。一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。Glusterfs可以根据存储需求快速调配存储,内含丰富的自动故障转移功能,且摒弃集中元数据服务器的思想。适用于数据密集型任务的可扩展网络文件系统,免费开源。Gluster于2011年10月7日被red hat收购。

2.Glusterfs特点

1 )Glusterfs体系结构,将计算、存储和I/O资源聚合到全局名称空间中,每台服务器都被视为节点,通过添加附加节点或向每个节点添加额外存储来扩展容量。通过在更多节点之间部署存储来提高性能。

2 )Glusterfs支持基于文件的镜像和复制、分条、负载平衡、故障转移、调度、磁盘缓存、存储配额、卷快照等。

3 )Glusterfs各客户端之间无连接,本身依赖于弹性哈希算法,而不是使用集中式或分布式元数据模型。

4 )Glusterfs通过各种复制选项提供数据可靠性和可用性:复制卷、分布卷。

2.1.3 案例环境

1.案例环境

本案例环境如表2-1所示。


分布式kvm系统(分布式存储)

表2-1

2.案例拓扑

本案例环境拓扑如图2.1所示。


分布式kvm系统(分布式存储)

图2.1案例拓扑

3.案例需求

公司由于大规模使用KVM虚拟机来运行业务,为了保证公司虚拟机能够安全稳定运行,决定采用KVM+Glusterfs模式,来保证虚拟机存储的分布部署,以及分布冗余。避免当虚拟机文件损坏,或者丢失。从而在损坏或就丢失时有实时备份,保证业务正常运行。

4.案例实现思路

1)安装KVM

2)所有节点部署Glusterfs

3)客户端挂载Glusterfs4)kvm使用挂载的Glusterfs目录创建虚拟机

2.2 案例实施

2.2.1 安装部署KVM虚拟化平台

1)安装KVM虚拟化平台。在CentOS的系统光盘镜像中,已经提供了安装KVM所需软件。通过部署基于光盘镜像的本地yum源,直接使用yum命令安装所需软件即可,安装KVM所需软件具体包含以下几个。

yum -y install qemu-kvm //KVM模块

yum -y install qemu-kvm-tools //KVM调试工具,可不安装

yum -y install virt-install //构建虚拟机的命令行工具

yum -y install qemu-img //qemu组件,创建磁盘、启动虚拟机等

yum -y install bridge-utils //网络支持工具

yum -y install libvirt //虚拟机管理工具

yum -y install virt-manager //图形界面管理虚拟机

2)验证。重启系统后,查看CPU是否支持虚拟化,对于Intel的服务器可以通过以下命令查看,只要有输出就说明CPU支持虚拟化;AMD服务器可用cat/proc/cpuinfo | grep smv命令查看。

[root@kvm ~]# cat /proc/cpuinfo | grep vmx

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx hypervisor lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid tsc_adjust

检查KVM模块是否安装:

[root@kvm ~]# lsmod | grep kvm

kvm_intel 170181 0

kvm 554609 1 kvm_intel

irqbypass 13503 1 kvm

请注意: 在使用yum安装完桌面后执行ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target 命令,将系统的默认运行target更改为graphical.targe。

重启后系统将进入图形化界面。若不执行上述命令更改系统的默认运行target,重启时可能报错。

3)开启服务

安装完成后还需要开启libvirtd服务,以开启相关支持。

[root@bdqn ~]# systemctl start libvirtd

[root@bdqn ~]# systemctl enable libvirtd

2.2.2 GlusterFS部署

服务器端安装,在所有节点上执行如下命令:

1)关闭防火墙、seliunx,更改主机名为node1到node4.

[root@node1 ~]# systemctl stop firewalld && systemctl disable firewalld

[root@node1 ~]# vim /etc/hostname

node1

[root@node1 ~]#reboot

[root@node1 ~]# setenforce 0

2)编写hosts文件

[root@node1 ~]# vim /etc/hosts

192.168.9.168 node1

192.168.9.209 node2

192.168.9.200 node3

192.168.9.116 node4

192.168.9.229 kvm

3)安装软件

拷贝提供的文件包gfsrepo(文件夹)到每个节点。删除/etc/yum.repo.d/下面所有仓库文件,并重新创建新仓库文件指向gfsrepo目录(绝对路径)。

[root@node1 ~]# rm -rf /etc/yum.repos.d/*

[root@node1 ~]# vim /etc/yum.repos.d/1.repo

[1]

name=1

baseurl=file:///root/gfsrepo

gpgcheck=0

enabled=1

[root@node1 ~]# yum clean all && yum makecache

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

4)启动Glusterfs

在所有节点执行以下操作:

[root@node1 ~]# systemctl start glusterd.service && systemctl enable glusterd.service

5)在node1上添加所有节点,如果报错请检查防火墙、selinux、主机名及hosts文件是否正确。

[root@node1 ~]# gluster peer probe node2

peer probe: success.

[root@node1 ~]# gluster peer probe node3

peer probe: success.

[root@node1 ~]# gluster peer probe node4

peer probe: success.

6)查看集群状态

[root@node1 ~]# gluster peer status

Number of Peers: 3

Hostname: node2

Uuid: 66b29d1f-dfd9-4ef4-b32e-3b04d6ca4f4e

State: Peer in Cluster (Connected)

Hostname: node3

Uuid: 9f1932f1-6cf2-41a1-abfc-f7418a0eea23

State: Peer in Cluster (Connected)

Hostname: node4

Uuid: c88fb426-eeea-421c-8cc9-98eb015b70ef

State: Peer in Cluster (Connected)

2.2.3 创建GlusterFS分布式复制卷

当前一共有四个节点,设置为2x2=4,就是2个节点为一组,一组两个节点会有相同的数据。从而达到虚拟机数据分布式存储并有冗余备份。分布式复制卷详细介绍已在之前章节讲解这里不再赘述。

在所有节点创建/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

Volume Name: models

Type: Distributed-Replicate

Volume ID: 971de13e-9087-44b3-bf03-3c4c80a7dfe2

Status: Started

Snapshot Count: 0

Number of Bricks: 2 x 2 = 4

Transport-type: tcp

Bricks:

Brick1: node1:/data

Brick2: node2:/data

Brick3: node3:/data

Brick4: node4:/data

Options Reconfigured:

transport.address-family: inet

nfs.disable: on

启动models卷:

[root@node1 ~]# gluster volume start models

2.2.4 客户端挂载glusterfs卷

1)安装glusterfs客户端软件

拷贝提供的文件包gfsrepo(文件夹)到每个节点。删除/etc/yum.repo.d/下面所有仓库文件,并重新创建新仓库文件指向gfsrepo目录(绝对路径)。参照上文服务端配置。

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

2)创建挂载目录,并挂载卷

[root@kvm ~]# mkdir /kvmdata

[root@kvm ~]# mount -t glusterfs node1:models /kvmdata/

3)查看挂载卷。

[root@localhost kvmdata]# df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/mapper/cl-root 17G 4.6G 13G 27% /

devtmpfs 1.9G 0 1.9G 0% /dev

tmpfs 1.9G 144K 1.9G 1% /dev/shm

tmpfs 1.9G 8.9M 1.9G 1% /run

tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup

/dev/vda1 1014M 173M 842M 17% /boot

tmpfs 380M 4.0K 380M 1% /run/user/42

tmpfs 380M 40K 380M 1% /run/user/0

/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64

node1:models 34G 8.3G 26G 25% /kvmdata

2.2.5 KVM使用卷创建虚拟机

KVM指定虚拟机安装路径到已挂载的目录下,从而达到虚拟机文件分布式存储并有冗余功能。

1)新建虚拟机,添加存储池,如图2.2、图2.3所示。添加镜像存储池ISO以及虚拟机存放目录存储池data,把两个存储池存放到glusterfs挂载的/kvmdata目录下,如图2.4、图2.5所示。


分布式kvm系统(分布式存储)

图2.2 新建虚拟机


分布式kvm系统(分布式存储)

图2.3 新建存储池


分布式kvm系统(分布式存储)

图2.4 指定ISO存储池


分布式kvm系统(分布式存储)

图2.5 指定data存储池

2)虚拟机指定安装地址,如图2.6所示。在创建虚拟机时重新把文件存放在刚刚建立data存储池下,然后完成安装虚拟机。


分布式kvm系统(分布式存储)

图2.6 新建虚拟机指定存储池

3)验证存储

在四台节点上查看目录里是否存在虚拟机文件。可以看出虚拟机文件已经存放在第二组node3、node4里。

[root@node1 ~]# ll /data/data/

总用量 0

[root@node2 ~]# ll /data/data/

总用量 0

[root@node3 ~]# ll /data/data/

总用量 4168

-rw-------. 2 root root 21478375424 5月 29 10:40 centos7.0.qcow2

[root@node4 ~]# ll /data/data/

总用量 4168

-rw-------. 2 root root 21478375424 5月 29 10:40 centos7.0.qcow2

以上就是关于分布式kvm系统 相关问题啦,如需了解更多关于分布式kvm系统问题,关注我们的下次更新哦