`

MooseFS 3.0部署笔记(3)【原创】

阅读更多
本文介绍MooseFS+DRBD+KEEPALIVED实现高可用,以下是部署笔记。
一、DRBD(实现MFSMASTER META_DATA 的同步写)

1. 配置hosts
192.168.3.127 L-AP-3-127
192.168.3.131 L-AP-3-131

2. 下载依赖包flex,并安装
ftp://rpmfind.net/linux/centos/6.8/os/x86_64/Packages/flex-2.5.35-9.el6.x86_64.rpm
rpm -ivh flex-2.5.35-9.el6.x86_64.rpm
3. 下载drbd安装包,并安装
1) 安装内核包
http://oss.linbit.com/drbd/8.4/drbd-8.4.6.tar.gz
tar -xzvf drbd-8.4.6.tar.gz
cd drbd-8.4.6
cd drbd
#因为内核小于2.6.33,所以要装内核包,2.6.33以后版本已包含不需要装
make KDIR=/usr/src/kernels/2.6.32-220.el6.x86_64/
cp drbd.ko /lib/modules/`uname -r`/kernel/lib/
depmod
modprobe drbd
modinfo drbd

2) 安装工具包
下载http://oss.linbit.com/drbd/drbd-utils-8.9.6.tar.gz
tar -xzvf drbd-utils-8.9.6.tar.gz
cd drbd-utils-8.9.6
# --with-pacemaker,启用pacemaker集群支持,会创建ocf格式资源文件
./configure --prefix=/usr/local/drbd  --sysconfdir=/etc/ --localstatedir=/var/ --with-pacemaker
make && make install
(漫长的等待)

3) 修改配置
ln -s /usr/local/drbd/sbin/drbdadm /usr/sbin/drbdadm
ln -s /usr/local/drbd/sbin/drbdmeta /usr/sbin/drbdmeta
ln -s /usr/local/drbd/sbin/drbdsetup /usr/sbin/drbdsetup

4) DRBD主配置文件(/etc/drbd.conf)
## global_common.conf文件包含global和common的DRBD全局配置部分; 
        ## *.res文件包含DRBD资源的配置信息。
vi /etc/drbd.d/global_common.conf
global {
        usage-count no;  # 是否加入DRBD官方统计
        # minor-count dialog-refresh disable-ip-verification
        # cmd-timeout-short 5; cmd-timeout-medium 121; cmd-timeout-long 600;
}

common {
        handlers {
                # 定义处理机制程序,/usr/lib/drbd/ 里有大量的程序脚本
                # These are EXAMPLE handlers only.
                # They may have severe implications,
                # like hard resetting the node under certain circumstances.
                # Be careful when chosing your poison.

                # pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
                # pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
                # local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
                # fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
                # split-brain "/usr/lib/drbd/notify-split-brain.sh root";
                # out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
                # before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
                # after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
        }

        startup {
# 定义启动超时时间等
                # wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
        }

        options {
                # cpu-mask on-no-data-accessible
        }

        disk {
# 磁盘相关公共设置,比如I/O、数据状态
                # size on-io-error fencing disk-barrier disk-flushes
                # disk-drain md-flushes resync-rate resync-after al-extents
                # c-plan-ahead c-delay-target c-fill-target c-max-rate
                # c-min-rate disk-timeout
                on-io-error detach; # 配置I/O错误处理策略为分离
        }

        net {
# 设置DRBD同步时使用的验证方式和密码信息。
                # protocol timeout max-epoch-size max-buffers unplug-watermark
                # connect-int ping-int sndbuf-size rcvbuf-size ko-count
                # allow-two-primaries cram-hmac-alg shared-secret after-sb-0pri
                # after-sb-1pri after-sb-2pri always-asbp rr-conflict
                # ping-timeout data-integrity-alg tcp-cork on-congestion
                # congestion-fill congestion-extents csums-alg verify-alg
                # use-rle
                cram-hmac-alg sha1;
                shared-secret "drbd";
        }
        syncer {
               verify-alg sha1;
# 定义网络传输速率,一般传输速度的30%
               rate 50M;
        }
}

## 创建资源配置文件(/etc/drbd.d/r0.res)
resource r0{
# 公用相同部分可以放到顶部,各节点会自动继承
# 使用drbd的第三种同步协议,表示收到远程主机的写入确认后,则认为写入完成
protocol  C;
device    /dev/drbd0; # DRBD逻辑设备的路径
# drbd的元数据存放方式,DRBD磁盘内部。
meta-disk internal;
# 每个主机的说明以"on"开头,后面是主机名.在后面的{}中为这个主机的配置.
on L-AP-3-127{
  # 此处是节点的主机名‘uname -n’
  address         192.168.3.127:7788;  # 设置DRBD的监听端口
  disk            /dev/mapper/vg_drbd-lv_drbd; # 节点物理设备
}
on L-AP-3-131{
    address         192.168.3.131:7788;
    disk            /dev/mapper/vg_drbd-lv_drbd;
}
}
5) 启动
/etc/rc.d/init.d/drbd start
drbdadm create-md r0
这一步出现 open(/dev/mapper/vg_drbd-lv_drbd) failed: Device or resource busy。 原因是文件系统格式不一致,且已挂载。
解决方案:
1. umount /drbd
2. dd if=/dev/zero of=/dev/mapper/vg_drbd-lv_drbd bs=1M count=100
3. 重新执行drbdadm create-md r0 即可
4. 删除自动挂载 vi /etc/fstab   删除 /drbd  这一行

在3.131机器上部署一模一样的一台。

service drbd start   启动服务

service drbd status  查看状态
如果出现 Secondary/Unknown, 关闭防火墙。

drbdadm primary --force r0 (设置主节点,仅执行3.127)

service drbd status  查看状态(可以看到主节点变化)

cat /proc/drbd  可以看到主备同步情况
mkfs -t ext4 /dev/drbd0(以下只在主节点3.127执行)
mkdir /mnt/drbd0
mount /dev/drbd0 /mnt/drbd0
chown -R mfs:mfs /mnt/drbd0/

从节点建立挂载目录
mkdir /mnt/drbd0
chown -R mfs:mfs /mnt/drbd0/


6) 修改mfsmaster配置
vi /etc/mfs/mfsmaster.cfg
修改DATA_PATH=/mnt/drbd0/mfs
mkdir /mnt/drbd0/mfs
chmod -R 777 /mnt/drbd0/mfs
cp /var/lib/mfs/* /mnt/drbd0/mfs/


7) 验证是否同步(因为备节点不能被读,所以只能进行主备切换后查看。)
原主节点 umount /mnt/drbd0
设置为从节点 drbdadm secondary r0
原从节点设置为主节点 drbdadm primary r0
原从节点 mount /dev/drbd0 /mnt/drbd0
查看相关目录数据是否一致。(注意执行顺序)

8) 验证同步后,因为一开始老是不能 umount , 直接reboot之后,发现两台机器脑裂了,谁也不认识谁。这时按以下方法修复:
在备机 3.131 上执行:
drbdadm disconnect r0
drbdadm secondary r0
drbdadm --discard-my-data connect r0
在主机 3.127 上执行:
drbdadm connect r0
在备机 3.131 上执行:
service drbd stop
service drbd start
查看状态:
service drbd status
红色部分可不执行
9) 重启之后恢复master
service drbd start
drbdadm primary --force r0
mount /dev/drbd0 /mnt/drbd0
10) 重启之后恢复slave
service drbd start
service drbd status

错误分析:
命令mount /dev/drbd0 /mnt/drbd0
提示mount: you must specify the filesystem type
方案:需要将drbd起来,然后设为primary 才能mount
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    moosefs-3.0.84-1.tar.gz

    本文将深入探讨MooseFS 3.0.84-1版本的特性、工作原理以及其在实际应用中的价值。 MooseFS,简称MFS,是由MooseFS Team开发的开源分布式文件系统。它以高可用性、容错性和可扩展性为主要设计目标,适用于需要处理...

    moosefs-3.0.101-1.tar.gz

    《分布式存储系统MooseFS详解:从3.0.101版本说起》 MooseFS,简称MFS,是一款高性能、可扩展的分布式文件系统,适用于大规模数据存储和处理场景。在3.0.101-1这个版本中,MFS进一步优化了其在云原生环境下的表现,...

    MooseFS集群部署

    MooseFS集群部署详解 MooseFS是一款高性能的分布式文件系统,能够提供高可用性和高扩展性的存储解决方案。以下是MooseFS集群部署的详细手册。 一、安装部署Master角色服务器 1. 安装相关依赖包:yum -y install ...

    moosefs-3.0.91-1.tar.gz

    Moosefs-3.0.91-1.tar.gz源码包下载地址,MFS是一个具有容错性的网络分布式文件系统,它将数据分散存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本,对于访问MFS的客户端或者用户来说,整个...

    moosefs技术文档

    以上概述了MooseFS 3.0的核心概念和技术细节,为读者提供了深入理解MooseFS架构、安装配置过程以及存储类功能的基础。对于希望部署分布式文件系统的组织来说,MooseFS 是一个值得考虑的选择,尤其是在需要高度可扩展...

    MooseFS官方安装部署手册

    ### 安装部署MooseFS文档知识点 #### 标题解析 - **MooseFS官方安装部署手册**:本手册提供了官方推荐的MooseFS分布式文件系统的安装步骤和配置指南,涵盖多种操作系统平台,如Ubuntu、CentOS、RedHat以及MacOSX。...

    MooseFS网络分布式文件系统用户手册

    MooseFS是一种网络分布式文件系统,用户可以通过本手册了解如何安装部署和使用MooseFS 3.0版本。用户手册提供了系统架构、工作原理、容错性、平台兼容性等基础知识点,同时提供了对MooseFS系统硬件要求的详细说明,...

    MooseFS安装包和参考文档

    总的来说,MooseFS通过RPM包提供的安装方式简化了部署流程,使得在企业环境中快速搭建和管理分布式文件系统成为可能。通过合理配置和管理,MooseFS能为大数据处理、云计算和大规模存储应用提供可靠且高效的解决方案...

    MooseFS 分布式文件系统介绍与部署

    下面我们将深入探讨MooseFS的核心概念、工作原理以及如何进行部署。 MooseFS的架构基于主从模型,由三部分组成:Master Server(主服务器)、Chunk Server(数据块服务器)和Client(客户端)。Master Server负责元...

    moosefs的ansible自动部署

    3. **MooseFS的Ansible部署步骤** - 准备环境:确保所有服务器安装了必要的操作系统和依赖,例如Python,以及其他MFS所需的库。 - 创建Ansible配置:配置Ansible的主机清单,指定Master Server、Chunk Server和...

    一份详细的MooseFS安装手册

    ### MooseFS 安装与配置详解 #### 一、MooseFS概述 MooseFS (MFS) 是一种分布式文件系统,它能够提供大规模的数据存储能力,并具备良好的容错性和可扩展性。MooseFS 适用于多种场景,包括但不限于海量数据存储、云...

    Moosefs 用户手册2.0

    - 在部署MooseFS之前,需要确保所有服务器之间可以通过DNS名称互相识别。这有助于简化配置并提高系统的可管理性。 **3.2 新增库** - 安装过程中可能需要添加新的软件仓库以获取MooseFS的相关软件包。 **3.3 Pro及...

    mfs(moosefs)分布式文件系统安装手册

    本安装手册将详细讲解如何在你的环境中部署和使用MooseFS。 **1. 安装前准备** 在开始安装MooseFS之前,确保你的硬件环境满足最低要求,包括足够的CPU、内存和磁盘空间。同时,你需要一个网络环境,以便于各个节点...

    moosefs1.6.26

    MooseFS,简称MFS,是一款高性能、可扩展的分布式文件系统,专为处理大量数据和高并发访问而设计。1.6.26版本是该系统的一个更新,旨在提供更好的稳定性和性能优化。在本篇文章中,我们将深入探讨MFS的特性、工作...

    MooseFS 2.0 中文用户手册

    在部署MooseFS时,你需要安装Master、Chunk Server和Client软件包。根据描述,用户手册中应包含详细的安装步骤和配置指南,包括如何设置环境变量、配置文件参数以及启动和停止服务的命令。 **3. 文件系统操作** MFS...

    MooseFS分布式文件系统源码分析

    MooseFS,简称MFS,是一款高性能、可扩展的分布式文件系统,被广泛应用于大数据处理、云计算环境以及大规模存储需求的场景。通过深入分析MooseFS的源代码,我们可以了解到其内部工作原理,这对于理解分布式文件系统...

    手把手教你安装moosefs分布式文件系统 英文版

    MooseFS,简称MFS,是一款高性能、可扩展的分布式文件系统,专为处理大量数据和高并发访问而设计。...通过详细的安装教程和理解其工作原理,你可以有效地部署和管理MFS,充分利用其优势来满足业务需求。

    moosefs安装程序

    MooseFS,简称MFS,是一款...总结来说,MooseFS的安装涉及多个组件的部署和配置,通过RPM包进行安装可以简化这一过程。正确安装和配置MFS,可以为企业提供一个高效、可靠的分布式存储解决方案,适应大数据时代的需求。

    MooseFS分布式文件系统调研分析

    从源码角度分析MooseFS分布式文件系统的整体架构和各模块实现原理。

Global site tag (gtag.js) - Google Analytics