`

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

 
阅读更多

一。NFS共享服务

1.安装nfs服务器:

   yum  install  nfs-utils -y

2.配置nfs服务器:

   cat /etc/exports

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

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

相关推荐

Global site tag (gtag.js) - Google Analytics