设为首页 收藏本站
查看: 916|回复: 0

[经验分享] DRBD+HeartBeat+NFS 搭建高可用文件共享服务器笔记

[复制链接]

尚未签到

发表于 2019-1-7 06:13:08 | 显示全部楼层 |阅读模式
  环境:
  CentOS6.5_x64,两块硬盘,用sdb1作drbd分区(sdb1建立好分区即可,不用格式化和挂载)
  masternfs eth0:192.168.140.128  (heartbeat,drbd,nfs服务端)
  backupnfs eth0:192.168.140.131  (heartbeat,drbd,nfs服务端)
  VIP: 192.168.140.133
  

  客户机:192.168.140.132 (nfs客户端)
  

  

  一、添加HOSTS记录(主备):
  192.168.140.128 masternfs
  192.168.140.131 backupnfs
  

  

  二、安装DRBD(主备):
  1、安装epel源:
rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm  

  2、安装依赖包:
yum install -y gcc gcc-c++ make perl kernel-devel kernel-headers flex drbd84-utils kmod-drbd84  

  如果报错:Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
  解决方法:编辑[epel]下的baseurl前的#号去掉,mirrorlist前添加#号
  

  3、安装drbd:
wget http://oss.linbit.com/drbd/8.4/drbd-8.4.4.tar.gz
tar xvf drbd-8.4.4.tar.gz
cd drbd-8.4.4
./configure --prefix=/usr/local/drbd --with-km
make KDIR=/usr/src/kernels/`uname -r`/
make install
mkdir -p /usr/local/drbd/var/run/drbd
cp /usr/local/drbd/etc/rc.d/init.d/drbd  /etc/rc.d/init.d/
chkconfig --add drbd
chkconfig drbd on
cp drbd/drbd.ko /lib/modules/`uname -r`/kernel/lib/
modprobe drbd
lsmod | grep drbd  如果modprobe drbd报错,可以用 yum install kernel* 方式来更新,需要重启系统,重新安装一次
  

  4、配置DRBD
cd /usr/local/drbd/etc/drbd.d
mv global_common.conf global_common.conf.bak  

  重新建立global_common.conf
global {
        usage-count yes;
}
common {
        protocol C;
        disk {
                on-io-error detach;
        }
        syncer {
                rate 100M;
        }
}
resource web {
        on masternfs {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 192.168.140.128:7899;
                meta-disk internal;
        }
        on backupnfs {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 192.168.140.131:7899;
                meta-disk internal;
        }
}  

  5、创建DRBD记录信息数据块
drbdadm create-md web
service drbd start                    #(主备一起启动)  

  6、设置主备节点:
  主:
drbdadm -- --overwrite-data-of-peer primary web  备:
drbdadm secondary web  

  7、格式化并挂载分区:
  备:
[root@masternfs opt]# mkfs.ext4 /dev/drbd0
mke2fs 1.41.12 (17-May-2010)
mkfs.ext4: Wrong medium type while trying to determine filesystem size  报错,因为不能在备上操作这块分区
  

  主:
[root@backupnfs ~]# mkfs.ext4 /dev/drbd0
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5241029 blocks
262051 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000
Writing inode tables: done                           
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.  

  8、测试:
  主:
cd /data/
mkdir test   #建立一个文件夹,测试用
umount /data   #卸载分区
drbdadm secondary web    #把本节点设为备节点  查看状态drbdadm role web,此时是显示两个secondary,然后把另外一个备节点设成主节点,看看刚刚建立的文件夹还在不在
  

  备:
drbdadm primary web        #设成主节点
mount /dev/drbd0 /data     #挂载分区  结果,test文件夹还在!
  

  查看资源的连接状态
  [root@node1 ~]# drbdadm cstate r1
  Connected
  资源的连接状态;一个资源可能有以下连接状态中的一种
  StandAlone 独立的:网络配置不可用;资源还没有被连接或是被管理断开(使用 drbdadm disconnect 命令),或是由于出现认证失败或是脑裂的情况
  Disconnecting 断开:断开只是临时状态,下一个状态是StandAlone独立的
  Unconnected 悬空:是尝试连接前的临时状态,可能下一个状态为WFconnection和WFReportParams
  Timeout 超时:与对等节点连接超时,也是临时状态,下一个状态为Unconected悬空
  BrokerPipe:与对等节点连接丢失,也是临时状态,下一个状态为Unconected悬空
  NetworkFailure:与对等节点推动连接后的临时状态,下一个状态为Unconected悬空
  ProtocolError:与对等节点推动连接后的临时状态,下一个状态为Unconected悬空
  TearDown 拆解:临时状态,对等节点关闭,下一个状态为Unconected悬空
  WFConnection:等待和对等节点建立网络连接
  WFReportParams:已经建立TCP连接,本节点等待从对等节点传来的第一个网络包
  Connected 连接:DRBD已经建立连接,数据镜像现在可用,节点处于正常状态
  StartingSyncS:完全同步,有管理员发起的刚刚开始同步,未来可能的状态为SyncSource或PausedSyncS
  StartingSyncT:完全同步,有管理员发起的刚刚开始同步,下一状态为WFSyncUUID
  WFBitMapS:部分同步刚刚开始,下一步可能的状态为SyncSource或PausedSyncS
  WFBitMapT:部分同步刚刚开始,下一步可能的状态为WFSyncUUID
  WFSyncUUID:同步即将开始,下一步可能的状态为SyncTarget或PausedSyncT
  SyncSource:以本节点为同步源的同步正在进行
  SyncTarget:以本节点为同步目标的同步正在进行
  PausedSyncS:以本地节点是一个持续同步的源,但是目前同步已经暂停,可能是因为另外一个同步正在进行或是使用命令(drbdadm pause-sync)暂停了同步
  PausedSyncT:以本地节点为持续同步的目标,但是目前同步已经暂停,这可以是因为另外一个同步正在进行或是使用命令(drbdadm pause-sync)暂停了同步
  VerifyS:以本地节点为验证源的线上设备验证正在执行
  VerifyT:以本地节点为验证目标的线上设备验证正在执行
  查看资源角色的命令
  

  [root@node1 ~]# drbdadm role r1
  Primary/Secondary (在前面为当前节点)
  Parimary 主:资源目前为主,并且可能正在被读取或写入,如果不是双主只会出现在两个节点中的其中一个节点上
  Secondary 次:资源目前为次,正常接收对等节点的更新
  Unknown 未知:资源角色目前未知,本地的资源不会出现这种状态
  查看硬盘状态
  

  [root@node1 ~]# drbdadm dstate r1
  UpToDate/UpToDate
  本地和对等节点的硬盘有可能为下列状态之一:
  Diskless 无盘:本地没有块设备分配给DRBD使用,这表示没有可用的设备,或者使用drbdadm命令手工分离或是底层的I/O错误导致自动分离
  Attaching:读取无数据时候的瞬间状态
  Failed 失败:本地块设备报告I/O错误的下一个状态,其下一个状态为Diskless无盘
  Negotiating:在已经连接的DRBD设置进行Attach读取无数据前的瞬间状态
  Inconsistent:数据是不一致的,在两个节点上(初始的完全同步前)这种状态出现后立即创建一个新的资源。此外,在同步期间(同步目标)在一个节点上出现这种状态
  Outdated:数据资源是一致的,但是已经过时
  DUnknown:当对等节点网络连接不可用时出现这种状态
  Consistent:一个没有连接的节点数据一致,当建立连接时,它决定数据是UpToDate或是Outdated
  UpToDate:一致的最新的数据状态,这个状态为正常状态
  查看同步进度
  

  [root@node1 ~]# cat /proc/drbd 或者 执行/usr/local/drbd/sbin/drbd-overview
  version: 8.4.3 (api:1/proto:86-101)
  GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@localhost.localdomain, 2016-04-24 20:16:24
  0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
  ns:2767088 nr:0 dw:0 dr:2774680 al:0 bm:168 lo:0 pe:1 ua:7 ap:0 ep:1 wo:f oos:18202972
  [=>..................] sync'ed: 13.3% (17776/20476)M
  finish: 0:12:59 speed: 23,344 (22,492) K/sec
  由此可见:进度已经完成了13.3%,传输速度大概22M/S
  注:
  ds是磁盘状态信息
  dw是磁盘写信息
  dr是磁盘读信息
  

  

  

  三、安装NFS:
yum -y install nfs-utils rpcbind
cat > /etc/exports  authkeys  ha.cf  haresources  resource.d/killnfsd

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660071-1-1.html 上篇帖子: 搭建heartbeat高可用 下篇帖子: heartbeat 部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表