您的位置:首页 > 其它

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

2016-11-18 14:26 435 查看
一。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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: