搭建中小规模集群(nfs+rsync+inotify)-学习笔记

    xiaoxiao2021-12-03  15

    一。NFS共享服务

    1.安装nfs服务器:

       yum  install  nfs-utils -y

    2.配置nfs服务器:

       cat /etc/exports

       /home/work 192.168.0.*(rw,sync,all_squash) 一般这配置就可以

    rw:read-write,可读写;    注意,仅仅这里设置成读写客户端还是不能正常写入,还要正确地设置共享目录的权限,参考问题7  ro:read-only,只读;  sync:文件同时写入硬盘和内存;  async:文件暂存于内存,而不是直接写入内存;  no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。  root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;  all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;  anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;  anongid:匿名用户的GID值。

    3.查看nfs服务器和客户端配置参数:

       cat /var/lib/nfs/etab  (服务端)

       cat /proc/mounts    (客户端查看挂载情况,卡住的情况必须用这个命令查看,不要用df -h)

    二。RSYNC共享服务

    1.客户端rsync本地工作模式:

    rsync -avz --delete /etc/ /tmp/    (将etc下面的内容同步到tmp下面,并删除多余的文件。)

    2.rsyn的远程同步模式:

       rsync -avzP -e "ssh -p 22" /tmp/ root@192.168.88.240:/tmp/    #将本地tmp目录下面的文件同步到240

    3.rsync的服务器模式的配置文件/etc/rsyncd.conf:

      查看帮助 man rsyncd.conf

    #rsync.conf start### uid = rsync gid = rsync use chroot = no max connections = 2000 timeout = 600 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log ignore errors read only = false list = false hosts allow = 192.168.88.0/24 #hosts deny = 0.0.0.0/32 auth users = rsync_backup #虚拟用户 secrets file = /etc/rsync.password ######################################## [backup] comment = linux1 backup #欢迎语 path = /backup 

        useradd rsync -s /sbin/nologin -M    #创建同步服务的用户

        echo "rsync_backup:wmj" > /etc/rsync.password  #创建密码文件

        chmod 600 /etc/rsync.password    #修改密码文件的权限

    4.启动rsync的服务端:

       rsync --daemon

    5.rsync客户端的配置:

      echo "wmj" >/etc/rsync.password  #创建客户端密码文件(只要写密码不要用户)

      chmod 600 /etc/rsync.password  

      rsync -avz --delete /tmp/ rsync_backup@192.168.88.240::backup --password-file=/etc/rsync.password (将客户端的tmp目录里面的内容推送到服务端)

     

    二。inotify服务

    1.在客户端上安装inotify:

      wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

      ./configure

      make&&make install

    2.监听/tmp/目录的增,删,改操作并按格式打印:

      inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create,delete,close_write /tmp/  (打印的日志格式为:“29/05/16 07:55 /tmp/123”)

     

    3.使用inotify监听目录实时rsync同步脚本:

    #!/bin/bash inotify=/usr/local/bin/inotifywait $inotify -mrq --format '%w%f' -e create,delete,close_write /tmp/ \ |while read file do rsync -az --delete /tmp/ rsync_backup@192.168.88.240::backup --password-file=/etc/rsync.password done

    4.优化inotify参数:

    # 在/proc/sys/fs/inotify目录下有三个文件,对inotify机制有一定的限制

     

    [root@web ~]# ll /proc/sys/fs/inotify/ 总用量0 -rw-r--r--1 root root 09月923:36 max_queued_events -rw-r--r--1 root root 09月923:36 max_user_instances -rw-r--r--1 root root 09月923:36 max_user_watches

     

       max_user_watches #设置inotifywait或inotifywatch命令可以监视的文件数量(单进程)    max_user_instances #设置每个用户可以运行的inotifywait或inotifywatch命令的进程数    max_queued_events #设置inotify实例事件(event)队列可容纳的事件数量 ----------------------------

     

    echo 50000000>/proc/sys/fs/inotify/max_user_watches -- 把他加入/etc/rc.local就可以实现每次重启都生效 echo 50000000>/proc/sys/fs/inotify/max_queued_events
    转载请注明原文地址: https://ju.6miu.com/read-680169.html

    最新回复(0)