NFS零零总总

文件系统选型

NFS MFS(分布式文件系统) GFS(云计算存大文件)


ext234 xfs(c7 rh7默认)


选型:

c5:ext3

c6:ext4  视频下载、流媒体、数据库、小文件


以下需要单独安装:

xfs 数据库mysql等

reiserfs 大量小文件



0,中小型网站

1,重视维护方便

2,大并发优化,缓存解决磁盘压力:cdn 网站缓存 数据库前端缓存 


 ls /lib/modules/2.6.32-573.el6.x86_64/kernel/fs/


 企业为什么要共享存储?

 web的附件、图片等存放在nsf服务器上。  nsf可以通过cdn缓解压力。


需求:

 网站调度系统|-a     后台NFS系统供应数据给各个服务器

                      |-b



NFS端口不确定:

RPC -远程procedure call 

c5:portmap c6:rpcbind


工作过程:

NFS端口不固定

先启动rpc服务,然后再启动rpcbind服务。rpcbind汇报自己的端口给rpc。rpc将端口告诉客户端。


cat /etc/red

uname -r -m 

-n 主机名

-r 内核版本

-m 32or64


rpm -qa rpcbind portmap

yum grouplist

安装:

yum groupinstall “NFS file server” -y

yum install nfs-utils rpcbind -y


route del default gw 10.0.0.253

route add default gw 10.0.0.254


服务端:

/etc/init.d/rpcbind start

ps -ef |grep rpc

/etc/init.d/rpcbind status


rpcinfo -p localhost  看房源

rpc 默认111端口


/etc/init.d/nfs start

rpcinfo -p localhost


chkconfig nfs on

chkconfig rpcbind on

chkconfig --list nfs

chkconfig --list rpcbind


more /etc/init.d/rpcbind

看启动顺序


客户端:启动rpc服务即可。不用nfs服务

/etc/init.d/rpcbind start  ***

/etc/init.d/rpcbind status 

chkconfig rpcbind on  (s k)

chkconfig --list rpcbind



配置共享:

服务端:

ll /etc/exports

mkdir /data

vim /etc/exports

#shared data for bbs by lanny at time

/data 10.0.0.0/24(rw,sync)


cat /etc/exports

/etc/init.d/nfs reload



sync  把数据从buffer写到缓存里

halt


检查:

服务端:

showmount -e localhost

客户端:

showmount -e 10.1.1.10 

挂载:

mount -t 源 目的

mount -t nfs 10.1.1.10:data /mnt

df -h

cd /mnt

ll

rm index.html

到服务端看,也没了。

--客户端可以读了

看是不是可以写了。

不可以写。虽然有了共享权限。本地目录权限。

第一种方式:服务端:chmod 777 data


可以写咯。

如果不加suid,默认属性是登陆用户和组。

ll查发现是nfsnobody身份写的。


服务端:

修改默认用户:

cat /var/lib/nsf/etab nfs权限列表等。

grep 65534 /etc/passwd


第二种方式:

chmod 766 /data

chmod -R nsfnobody.nsfnobody /data



nfs挂载优化:

mount -t nfs -o nosuid,noexec,nodev,rw 10.1.1.10:/data /mnt


卸载:

umont /mnt

查看参数

grep mnt /proc/mounts


安全测试:

noexec:程序命令不能执行

./test.sh  没权限执行

chmod +x test.sh  没权限执行

sh test.shs 可以执行


在~下:

echo ・pwd・ > t.sh

./t.sh 没法执行

chmod +x t.sh 可以执行


cp /bin/cat /mnt

/mnt/cat /mnt/test.sh

ll /mnt/cat

无法执行


cp /bin/cat /opt

/opt/cat /mnt/test.sh

可以执行


suid测试

cp /bin/rm /mnt

chmod u+s rm  在不知道原有文件权限的前提

ll rm




你可能感兴趣的:(nfs,portmap,rpcbind)