整体方案需要至少五款开源软件,来实现所需功能。

1. 软件介绍

1 NFS Kernel Server 开源内核态软件,用以提供通用NFS服务协议。本地盘格式化后挂载在本地目录,并通过NFS server导出后,其他主机(客户端)可以通过网络访问此目录。

2 Rsync 同步软件,可以将指定目录下的所有内容同步到另一个目录。相比于cp、scp命令的优点在于可以增量同步,通过比对文件大小、修改时间等决定是否需要拷贝文件。其一般有三种工作模式:

本地复制

远程shell访问:借助ssh协议等传输文件

远程daemon访问:借助rsync自己的进程和端口传输文件

3 Inotify-tools 可以用来监控指定目录下发生的文件相关操作,如open、write、close等,并在捕获到操作时调用指定脚本。借助该软件可以监控NFS共享目录,并在发生文件操作时调用rsync进行同步,实现更实时的远程复制。

4 Sersync 国人开发的远程复制工具,对rsync和inotify进行了封装,实现了故障重传、多线程并发复制等功能。

5 KeepAlived 以虚IP的方式提供高可用及故障切换功能,一般有三种状态:

Master:承载虚IP的节点

Backup:备节点

Fault/Stop:故障/停止状态

6 Sersync-api-server 另外,还新开发了一个独立的Python WSGI Server,用于管理配额功能。

2. 安装过程

2.1. 创建lvm数据目录

创建lvm盘

$ pvcreate /dev/sdc
$ vgcreate nfsdata /dev/sdc
$ lvcreate -L 100G -n nfs_1 nfsdata

格式化,创建xfs文件系统,设置自动挂载

$ mkfs.xfs /dev/nfsdata/nfs_1
$ mkdir /nfs-docker

在/etc/fstab中新增一行

/dev/nfsdata/nfs_1 /nfs-docker xfs rw,prjquota 0 0

挂载分区

mount -a

创建目录

$ mkdir /nfs-docker/admin
$ mkdir /nfs-docker/data

2.2. 安装nfs

$ yum install -y nfs-utils
$ echo "/nfs-docker/data *(rw,sync,no_subtree_check,no_root_squash,fsid=1)" >> /etc/exports
$ exportfs -ar

2.3. 安装keepalive

yum install -y keepalived

2.4. 安装 Sersync

$ yum install -y epel-release
$ yum install -y rsync inotify-tools
$ yum install -y python-setuptools  python-eventlet python-routes  python-webob

安装sersync的rpm包
$ rpm -ivU https://nfs.nos-eastchina1.126.net/sersync-0.2-1.el7.centos.x86_64.rpm

修改配置:

/etc/sersync/rsyncd.conf: hosts allow改为对端节点IP
/etc/sersync/sersync.conf: remote ip改为对端节点IP
(可选)/etc/sersync/functions: report_server的IP改为定时接收探活信息的服务器地址

配置keepalive

cp /etc/sersync/keepalived.example /etc/keepalived/keepalived.conf

/etc/keepalived/keepalived.conf: 可以参考/etc/sersync/keepalived.example,除了通用配置外主要是加入nopreempt选项,设置track_script和notify调用脚本

2.5. 服务启动,开机启动

systemctl daemon-reload && systemctl enable keepalived && systemctl restart keepalived
systemctl daemon-reload && systemctl enable nfs-config && systemctl restart nfs-config
systemctl daemon-reload && systemctl enable nfs-server && systemctl restart nfs-server
Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2022-01-02 06:58:06

results matching ""

    No results matching ""