通过heartbeat配置lustre元数据服务器mds高可用

本次试验环境

OS:5台RHEL6.4  x86_64 最小化安装

图1为本次试验示意图

其中上图DRBD为添加的5g硬盘,用来DRBD同步数据使用

oss1也添加一块5g的硬盘作为ost使用

MDS采用active-standby模式,示意图如下所示

所有节点的hosts文件如下

[[email protected]~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4localhost4.localdomain4

::1         localhost localhost.localdomainlocalhost6 localhost6.localdomain6

# Public Entries

192.168.78.12   mds1

192.168.78.13   mds2

192.168.78.14   oss1

# LnetEntries

172.16.1.254    mds1-eth1

172.16.1.253    mds2-eth1

172.16.1.252    oss1-eth1

#HeartBeat Entries

10.1.1.1        mds1-eth2

10.1.1.2        mds2-eth2

# DRBD Entries

192.168.10.1    mds1-eth3

192.168.10.2    mds2-eth3

软件版本

lustre-2.4.3

heartbeat-3.0.4

drbd-8.4.4.tar.gz

一:首先在所有节点上安装lustre

1.首先配置好本地yum源

下载好的lustre包如下所示

[[email protected] lustre-2.4.3]# ls

e2fsprogs-1.42.9.wc1-7.el6.x86_64.rpm

e2fsprogs-libs-1.42.9.wc1-7.el6.x86_64.rpm

e2fsprogs-static-1.42.9.wc1-7.el6.x86_64.rpm

kernel-2.6.32-358.23.2.el6_lustre.x86_64.rpm

kernel-devel-2.6.32-358.23.2.el6_lustre.x86_64.rpm

kernel-firmware-2.6.32-358.23.2.el6_lustre.x86_64.rpm

kernel-headers-2.6.32-358.23.2.el6_lustre.x86_64.rpm

libcom_err-1.42.9.wc1-7.el6.x86_64.rpm

libss-1.42.9.wc1-7.el6.x86_64.rpm

lustre-2.4.3-2.6.32_358.23.2.el6_lustre.x86_64.x86_64.rpm

lustre-iokit-1.4.0-1.noarch.rpm

lustre-ldiskfs-4.1.0-2.6.32_358.23.2.el6_lustre.x86_64.x86_64.rpm

lustre-modules-2.4.3-2.6.32_358.23.2.el6_lustre.x86_64.x86_64.rpm

lustre-osd-ldiskfs-2.4.3-2.6.32_358.23.2.el6_lustre.x86_64.x86_64.rpm

lustre-source-2.4.3-2.6.32_358.23.2.el6_lustre.x86_64.x86_64.rpm

lustre-tests-2.4.3-2.6.32_358.23.2.el6_lustre.x86_64.x86_64.rpm

perf-2.6.32-358.23.2.el6_lustre.x86_64.rpm

python-perf-2.6.32-358.23.2.el6_lustre.x86_64.rpm

[[email protected] lustre-2.4.3]#

开始安装lustre

[[email protected] lustre-2.4.3]# yum -y --nogpgcheck install *.rpm && reboot

查看是否安装成功

uname -r

2.6.32-358.23.2.el6_lustre.x86_64

可看到内核已经更改,可知安装成功

2.配置LNET

本实验用eth1作为lnet

cd  /etc/modprobe.d

touch  lnet.conf

cat lnet.conf

options lnet networks=tcp0(eth1)

检查一下lnet配置是否正确

有上图可知,配置正确

3.在mds1,mds2上安装drbd

yum -y install flex kernel-devel libxslt

tar xzvfdrbd-8.4.4.tar.gz -C /usr/local/src

cd drbd-8.3.11

./configure--prefix=/usr \

--localstatedir=/var \

--sysconfdir=/etc \

--with-km

make

make install

测试drbd是否安装成功

如上图所示可知drbd安装成功

4.配置drbd

cd /etc/drbd.d/

vi  global_common.conf

把usage-count yes改为usage-count no;(不是必须)

在net {}里添加protocol C;

[[email protected] drbd.d]# touch r0.res

[[email protected] drbd.d]# cat r0.res

resource r0 {

meta-disk       internal;

device  /dev/drbd0;

disk    /dev/sdb;

on      mds1 {

address    192.168.10.1:7898;         //这里要直接使用IP地址

}

on      mds2 {

address    192.168.10.2:7898;

}

}

[[email protected] drbd.d]#

在启动drbd之前,需要分别在mds1和mds2上创建drbd元数据块

启动DRBD

chkconfig drbd on

目前状态为secondary/secondary,还未进行同步,使用下面命令进行同步

有上图ds:UoToDate/UpToDate可知同步完成

首先在mds1上(因为此时mds1为primay)创建lustre文件系统

mkfs.lustre --fsname=lustre \

--mgs \

--mdt \

--failnode=mds2-eth1 \

--index=0  /dev/drbd0

把drbd主备状态恢复

drbdadm secondaryall

在mds1,mds2上创建目录/mdt

5.在mds1,mds2上安装heartbeat

本次实验我图省事用yum安装heartbeat(实际生产环境中建议自己编译heartbeat)

yum  -y  install heartbeat*

二:配置mds的高可用(active-standby模式)

在mds1节点上

cp/usr/share/doc/heartbeat-3.0.4/ha.cf /etc/ha.d/

cp/usr/share/doc/heartbeat-3.0.4/authkeys /etc/ha.d/

cp /usr/share/doc/heartbeat-3.0.4/haresources/etc/ha.d/

[[email protected] ~]# grep -v "^#" /etc/ha.d/authkeys |grep ^[^$]

auth 1

1 crc

[[email protected] ~]# ls -l /etc/ha.d/authkeys

-rw------- 1 root root 643 Oct 24 09:05 /etc/ha.d/authkeys

[[email protected] ~]#

[[email protected] ~]# grep -v "^#" /etc/ha.d/ha.cf |grep ^[^$]

debugfile /var/log/ha-debug

logfile /var/log/ha-log

logfacility     local0

keepalive 1

deadtime 15

warntime 5

initdead 60

udpport 694

ucast eth2 10.1.1.2                     //采用单播模式,在mds2上IP要改成对方的IP即10.1.1.1

auto_failback off

node    mds1

node    mds2

ping 192.168.78.2

respawn hacluster /usr/lib64/heartbeat/ipfail

apiauth ipfail gid=haclient uid=hacluster

[[email protected] ~]#

[[email protected] ~]# grep -v "^#" /etc/ha.d/haresources |grep^[^$]

mds1 drbddisk::r0 Filesystem::/dev/drbd0::/mdt::lustre

[[email protected] ~]#

复制authkeys,ha.cf,haresources到mds2上

scp/etc/ha.d/ha.cf mds2:/etc/ha.d/

scp/ec/ha.d/authkeys mds2:/etc/ha.d/

scp/etc/ha.d/haresources mds2:/etc/ha.d/

分别在两台机器上启动heartbeat

/etc/init.d/heartbeatstart ; chkconfig heartbeat on

有上图后台日志可知,heartbeat启动成功,资源启动成功

由上图可知,lustre挂载成功

现在测试一下能否自动切换

第一种情况:mds1正常重启

在mds2上tail -f /var/log/messages &观察后台日志

正常重启是可以正常切换的

第二种情况:不正常关机(把mds2断电)

因为现在已经切换到mds2上了,所以这次在mds1上观察日志

drbd首先发现mds2 dead如上图所示

mds1又重新开始接管资源(上图)

此时的mds2的drbd状态为unkonwn

把mds2插电开机

mds2开机后drbd又开始同步,这是因为mds2为非正常关机,为了保持数据的一致性,所以又开始重新同步

三:配置oss

1.在oss1上创建lustre文件系统

mkfs.lustre--fsname=lustre \

[email protected]\

[email protected]\

--index=0 \

--ost /dev/sdb

创建/ost目录mkdir /ost1

vi /etc/fstab添加

/dev/sdb  /ost1 lustre   defaults,_netdev 0 0

挂载ost1分区mount /ost1 -v

在mds1上查看是否可以看到刚才的ost

有上图可看到刚才的ost并且为activate状态

四:客户端挂载

创建挂载目录/lustre

mkdir /lustre

挂载lustre

在/etc/fstab中添加挂载选项

[email protected]:[email protected]:/lustre  /ost lustre  defaults,_netdev 0 0

五:测试mds高可用是否正常

1.在客户端/lustre目录下创建一个测试目录和几个测试文件

mkdir /lustre/abcd

touch/lustre/sortware

目前mds服务运行在mds1上,现在把mds1关机,看是否还是可以继续往/lustre目录里写文件

由上图可知客户端发现连接到[email protected]丢失,此时ll命令会卡住2到3秒钟后,目录abcd,文件software又再次出现,当然现在也可以往里写新文件

由上图hpc1日志可知连接被恢复连接到了mds2

至此lustre—mds高可用配置成功完成

时间: 2024-07-28 15:26:29

通过heartbeat配置lustre元数据服务器mds高可用的相关文章

基于heartbeat v1配置mysql和httpd的高可用双主模型

一.配置高可用集群的前提:(以两节点的heartbeat为例) ⑴时间必须保持同步 ⑵节点之间必须用名称互相通信 建议使用/etc/hosts,而不要用DNS 集群中使用的主机名为`uname -n`表示的主机名: ⑶ping node(仅偶数节点才需要) ⑷ssh密钥认证进行无障碍通信: 二.heartbeat v1的配置 程序主配置文件:ha.cf 认证密钥:authkeys, 其权限必须为组和其它无权访问: 资源配置文件:haresources /usr/share/doc/heartbe

heartbeat v1 实现 MariaDB数据库的高可用

MariaDB数据库服务的高可用: 使用 heartbeat v1 版实现两个节点的 MariaDB数据库服务的高可用. 节点: node1        192.168.60.33 node2        192.168.60.88 MySQL数据库的数据文件使用nfs共享文件系统解决 nfs Server       192.168.60.22 架构如下图: 一.heartbeat 节点之间通信要求的设置: (1).解决节点的主机名解析 因为 heartbeat 的节点间通讯基于名称.基于

3台服务器Redis高可用哨兵模式

3台服务器Redis高可用哨兵模式 学习 redis 高可用 3台服务器Redis高可用哨兵模式 3.1 主redis配置 3.2 从redis配置 1. 介绍 2. redis程序安装 3. 哨兵模式配置 3.3 启动redis和哨兵 4. 总结 1. 介绍 Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务: 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常. 提醒(Notifi

多台服务器情况下Microsoft Dynamics CRM Server后端服务器的高可用探讨

服务器信息如下: 前端服务器1 前端服务器2 后端服务器1 后端服务器2 DB服务器 两台前端服务器之前架设了SLB,用户访问时直接访问SLB的地址,SLB分发到这两台前端服务器 目前问题是想知道后端服务器如何实现负载均衡,整个安装过程中没有看到有可以配置的地方,于是进行了如下测试 以导入数据功能为例: 禁用后端服务器1,禁用后端服务器2 数据停留在已提交状态,无后续操作:说明后端服务器无可用 禁用后端服务器1,启用后端服务器2 数据导入成功:说明匹配到了后端服务器 禁用后端服务器2,启用后端服

Linux之Heartbeat实现服务器的高可用

Heartbeat简介    Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能. Heartbeat结构图 基准层:(心跳传递层)运行在每一个节点,通过组播的方式传寄给每个备用节点.此协议工作在udp的694端口.  CRM:(集群资源管理器)依赖与心跳层,并且可以向上传及信息,安装与每个节点.  LRM:(本地资源管理器)由CR

MySQL+Heartbeat+DRBD+LVS+keepalived实现数据库高可用群集

DRBD  概述 一.DRBD简介          DRBD 的全称为:Distributed ReplicatedBlock Device(DRBD)分布式块设备复制,DRBD 是由内核模块和相关脚本而组成,用来构建数据的高可用性集群.其实现方式是通过网络来镜像整个磁盘设备(数据).你可以把它看作是一种基于网络的 RAID1.它允许用户在远程机器上建立一个本地块设备的实时镜像. 二.DRBD工作原理          (DRBD Primary)负责接收数据,把数据写到本地磁盘并发送给另一台

利用heartbeat的ldirectord实现ipvs的高可用集群构建

集群架构拓扑图: 网络规划: 两台LVS server:(两台LVS也可以为用户提供错误页面) node1:172.16.31.10 node2:172.16.31.11 VIP:172.16.31.180 ipvs规则内包含2台Real Server:(后面的RS指的就是后端的web服务器) rs1:172.16.31.13 rs2:172.16.31.14 我们还需要错误页面提供者:我们选择LVS作为sorry server,所有的real server不可用时就指向这个sorry serv

CentOS6.4 高可用集群之基于heartbeat(crm)和nfs的mysql高可用

CentOS6.4 高可用集群之基于heartbeat和nfs的高可用mysql CentOS版本: CentOS release 6.4(Final) 2.6.32-358.el6.i686 效果演示: 使用ssh连接(nod-1.magedu.com)192.168.3.7 并执行以下命令: [[email protected] ha.d]# hb_gui & 说明:hb_gui是heartbeat为了方便管理集群资源而提供的一个图形用户接口 安装heartbeat默认会在系统中创建一个名为

heartbeat+Haproxy多VIP负载均衡高可用

环境就不多做介绍了,还是上一篇中用到的四台机器,这里只是之前Heartbeat+Haproxy实现负载均衡高可用的补充罢了,废话少说,进入正题. 本文的目的将实现heartbeat绑定多个VIP,多个VIP又将分别代理多个不同的web服务,这些web服务之间做负载均衡,而VIP是高可用,进而实现haproxy的高可用. 主机名 角色 IP地址 说明 mylinux1.contoso.com Heartbeat+Haproxy eth0:192.168.100.121 eth1:172.16.10