KVM+GFS分布式存储系统构建KVM高可用
Glusterfs 简介
GlusterFS 分布式文件系统是由 Gluster 公司的创始人兼首席技术官 Anand BabuPeriasamy 编写。一个可扩展的分布式文件系统,可用于大型的、分布式的、对大量数据进行访问的应用。它可运行于廉价的普通硬件上,并提供容错功能;也可以给大量的用户提供总体性能较高的服务。GlusterFs可以根据存储需求快速调配存储,内含丰富的自动故障转移功能,且摒弃集中元数据服务器的思想。
Glusterfs 特点
GlusterFS 体系结构,将计算、存储和 IO 资源聚合到全局名称空间中,每台服务器都被视为节点,通过添加附加节点或向每个节点添加额外存储来扩展容量。通过在更多节点之间部署存储来提高性能。
GlusterFS 支持基于文件的镜像和复制、分条、负载平衡、故障转移、调度、磁盘缓存、存储配额、卷快照等功能。
GlusterFs 各客户端之间无连接,本身依赖于弹性哈希算法,而不是使用集中式或分布式元数据模型。
GlusterFS通过各种复制选项提供数据可靠性和可用性,例如复制卷、分布卷。
1.案例环境
2.案例需求
(1)部署 GlusterFS 文件系统
(2)实现 KVM 虚拟主机不会因宿主机宕机而宕机
3.案例实现思路
(1)安装 KVM。
(2)所有节点部署 GlusterFS。
(3)客户端挂载 GlusterFS
(4)KVM 使用挂载的 GlusterFS 目录创建虚拟机。
一:部署GFS高可用分布式存储环境
1:安装部署 KVM 虚拟化平台
2:部署 GlusterFS
在所有节点上执行如下命令:
(1)关闭防所有节点的防火墙、SELiunx
<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f7f7"><span style="color:#000000"><code class="language-cpp">systemctl stop firewalld
systemctl disable firewalld
setenforce <span style="color:#c92c2c">0</span></code></span></span></span></span>
(2)编写 hosts 文件
<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f7f7"><span style="color:#000000"><div style="text-align:start"><div><div><div><div><div><div><span style="color:var(--gpts-primary-text-color)"><span style="color:rgba(0, 0, 0, 0.88)"><span style="color:var(--gpts-black-text-color1)">解释</span></span></span></div></div><div></div><div></div></div></div></div></div></div><code class="language-cpp"><span style="color:#5f6364">[</span>root@node1 <span style="color:#a67f59">~</span><span style="color:#5f6364">]</span># cat<span style="color:#a67f59"><<</span><span style="color:#c92c2c">EOF</span><span style="color:#a67f59">></span> <span style="color:#a67f59">/</span>etc<span style="color:#a67f59">/</span>hosts
<span style="color:#c92c2c">192.168</span><span style="color:#5f6364">.</span><span style="color:#c92c2c">10.101</span> node1
<span style="color:#c92c2c">192.168</span><span style="color:#5f6364">.</span><span style="color:#c92c2c">10.102</span> node2
<span style="color:#c92c2c">192.168</span><span style="color:#5f6364">.</span><span style="color:#c92c2c">10.103</span> node3
<span style="color:#c92c2c">192.168</span><span style="color:#5f6364">.</span><span style="color:#c92c2c">10.104</span> node4
<span style="color:#c92c2c">192.168</span><span style="color:#5f6364">.</span><span style="color:#c92c2c">10.201</span> kvm01
<span style="color:#c92c2c">192.168</span><span style="color:#5f6364">.</span><span style="color:#c92c2c">10.202</span> kvm02
<span style="color:#c92c2c">EOF</span></code></span></span></span></span>
(3)安装软件
注意:先设置阿里yum仓库
<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f7f7"><span style="color:#000000"><code class="language-cpp"><span style="color:#5f6364">[</span>root@node1 <span style="color:#a67f59">~</span><span style="color:#5f6364">]</span># yum <span style="color:#a67f59">-</span>y install centos<span style="color:#a67f59">-</span>release<span style="color:#a67f59">-</span>gluster <span style="color:#5f6364">[</span>root@node1 <span style="color:#a67f59">~</span><span style="color:#5f6364">]</span># yum <span style="color:#a67f59">-</span>y install glusterfs glusterfs<span style="color:#a67f59">-</span>server glusterfs<span style="color:#a67f59">-</span>fuse glusterfs<span style="color:#a67f59">-</span>rdma</code></span></span></span></span>
(4)启动 GlusterFS
在所有节点Gluster执行以下操作
<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f7f7"><span style="color:#000000"><code class="language-cpp"><span style="color:#5f6364">[</span>root@node1 <span style="color:#a67f59">~</span><span style="color:#5f6364">]</span># systemctl start glusterd<span style="color:#5f6364">.</span>service <span style="color:#a67f59">&&</span> systemctl enable glusterd<span style="color:#5f6364">.</span>service</code></span></span></span></span>
(5)在 node1 上添加所有节点
<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f7f7"><span style="color:#000000"><div style="text-align:start"><div><div><div><div><div><div><span style="color:var(--gpts-primary-text-color)"><span style="color:rgba(0, 0, 0, 0.88)"><span style="color:var(--gpts-black-text-color1)">解释</span></span></span></div></div><div></div><div></div></div></div></div></div></div><code class="language-cpp"><span style="color:#5f6364">[</span>root@node1 <span style="color:#a67f59">~</span><span style="color:#5f6364">]</span># gluster peer probe node2
peer probe<span style="color:#a67f59">:</span> success<span style="color:#5f6364">.</span>
<span style="color:#5f6364">[</span>root@node1 <span style="color:#a67f59">~</span><span style="color:#5f6364">]</span># gluster peer probe node3
peer probe<span style="color:#a67f59">:</span> success<span style="color:#5f6364">.</span>
<span style="color:#5f6364">[</span>root@node1 <span style="color:#a67f59">~</span><span style="color:#5f6364">]</span># gluster peer probe node4
peer probe<span style="color:#a67f59">:</span> success<span style="color:#5f6364">.</span></code></span></span></span></span>
(6)查看集群状态
<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f7f7"><span style="color:#000000"><code class="language-cpp"><span style="color:#5f6364">[</span>root@node1 <span style="color:#a67f59">~</span><span style="color:#5f6364">]</span># gluster peer status</code></span></span></span></span>
3:创建 GlusterFS 分布式复制卷
<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f7f7"><span style="color:#000000"><div style="text-align:start"><div><div><div><div><div><div><span style="color:var(--gpts-primary-text-color)"><span style="color:rgba(0, 0, 0, 0.88)"><span style="color:var(--gpts-black-text-color1)">解释</span></span></span></div></div><div></div><div></div></div></div></div></div></div><code class="language-cpp">在所有节点创建<span style="color:#a67f59">/</span>data 目录
<span style="color:#5f6364">[</span>root@node1 <span style="color:#a67f59">~</span><span style="color:#5f6364">]</span># mkdir <span style="color:#a67f59">/</span>data创建分布式复制卷。
<span style="color:#5f6364">[</span>root@node1 <span style="color:#a67f59">~</span><span style="color:#5f6364">]</span># gluster volume create models replica <span style="color:#c92c2c">2</span> node1<span style="color:#a67f59">:</span><span style="color:#a67f59">/</span>data node2<span style="color:#a67f59">:</span><span style="color:#a67f59">/</span>data node3<span style="color:#a67f59">:</span><span style="color:#a67f59">/</span>data node4<span style="color:#a67f59">:</span><span style="color:#a67f59">/</span>data force查看 models 卷
<span style="color:#5f6364">[</span>root@node1 <span style="color:#a67f59">~</span><span style="color:#5f6364">]</span># gluster volume info models启动 models 卷
<span style="color:#5f6364">[</span>root@node1 <span style="color:#a67f59">~</span><span style="color:#5f6364">]</span># gluster volume start models</code></span></span></span></span>
二:为KVM主机部署GFS存储
1:KVM挂载 glusterfs 卷(所有kvm主机上都配置)
(1)安装 glusterfs 客户端软件。
<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f7f7"><span style="color:#000000"><code class="language-cpp"><span style="color:#5f6364">[</span>root@kvm01 <span style="color:#a67f59">~</span><span style="color:#5f6364">]</span># yum <span style="color:#a67f59">-</span>y install glusterfs glusterfs<span style="color:#a67f59">-</span>fuse</code></span></span></span></span>
(2)创建挂载目录,并挂载 models 卷。
<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f7f7"><span style="color:#000000"><div style="text-align:start"><div><div><div><div><div><div><span style="color:var(--gpts-primary-text-color)"><span style="color:rgba(0, 0, 0, 0.88)"><span sty