host1:192.168.1.2 nfs server
host2:192.168.1.3 httpd server
- 设置shared Storage
创建文件共享目录:
mkdir -pv /data/nfs
vim /etc/exports
/data/nfs 192.168.1.0/24(rw,no_root_squash)
启动服务
systemctl start nfs-utils.service
systemctl start nfs-server.service
查看端口nfs服务的2049是否成功监听:
~]#ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 64
- 挂载共享存储 *:2049
目标主机:host2:
挂载存储:
mount -t nfs 192.168.1.2:/data/nfs
- 测试
host1:
vim /data/nfs/index.html
<h1> this is from nfs sharing</h1>
host2:
cat /var/www/html/index.html
应用场景:
操作系统:CentOS6
要求:客户端:10.129.55.30 将目录: /home/weblogic/respages/, /home/weblogic/hideupload/挂载nfs,要求这两个目录的权限为weblogic,对weblogic可读写,对nginx 10.129.58.70只可读
一、nfs服务端: 10.129.56.90
1.安装服务端:yum -y install nfs-utils
要启动 NFS 我们必须要有两个套件才行,分别是:
nfs-utils 与 nfs-utils-clients (有时后仅有一个) ///这里我只安装了nfs-utils,可能是版本的原因
portmap ///安装的这个版本里面没有
~]# rpm -qa nfs-utils
nfs-utils-1.2.3-36.el6.x86_64
2.创建weblogic账户:
useradd weblogic
并且保证uid,gid和客户端的weblogic的相同,均为500
~]# id weblogic
uid=500(weblogic) gid=500(weblogic) groups=500(weblogic)
mkdir /nfs/{respages,hideupload} -pv
3.创建与客户端相同的两个目录,并修改属组属主为weblogic
mkdir /home/weblogic/{respages,hideupload} -pv
chown weblogic. /home/weblogic/respages/
chown weblogic. /home/weblogic/hideupload/
4.设置nfs的配置文档,/etc/exports这一个文档就可以搞定了,这个文档不存在,得自己创建
~]# vi /etc/exports
#/nfs/hideupload 10.129.55.0/24(rw,all_squash,anonuid=500,anongid=500)
#/nfs/hideupload 10.129.58.0/24(rw,all_squash,anonuid=500,anongid=500) ///注释掉的这两行也可以,下面的是后来别人改掉,由于生产环境,也就没动了
/nfs/hideupload 10.129.55.0/24(rw,insecure,async,all_squash,anonuid=500,anongid=500)
/nfs/hideupload 10.129.58.0/24(ro,insecure,async,all_squash,anonuid=500,anongid=500)
/nfs/respages 10.129.55.0/24(ro,insecure,async,all_squash,anonuid=500,anongid=500) //不知道为何repages是ro的权限,在weblogic上面,weblogic用户依然可以写文件
/nfs/respages 10.129.58.0/24(ro,insecure,async,all_squash,anonuid=500,anongid=500)
参数说明:
rw:可擦写的权限;
ro:只读的权限;
no_root_squash:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!
root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份;
all_squash:不论登入 NFS 的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是 nobody 啦!
anonuid:前面关于 *_squash 提到的匿名使用者的 UID 设定值,通常为 nobody,但是您可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于您的 /etc/passwd 当中!
anongid:同 anonuid ,但是变成 group ID 就是了!
sync:数据同步写入到内存与硬盘当中;
async:数据会先暂存于内存当中,而非直接写入硬盘!
insecure:允许从这台机器过来的非授权访问
NFS 的套件结构
NFS 这个咚咚真的是很简单,上面我们提到的 NFS 套件中,设定档只有一个,执行文件也不多,记录文件也三三两两而已吶!赶紧先来看一看吧! ^_^
o /etc/exports:这个档案就是 NFS 的主要设定档了!不过,系统并没有默认值,所以这个档案『不一定会存在』,所以您必须要使用 vi 主动的建立起这个档案喔!我们等一下要谈的设定也仅只是这个档案而已吶!
o /usr/sbin/exportfs:这个是维护 NFS 分享资源的指令,我们可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸载或重新分享等等,这个指令是 NFS 系统里面相当重要的一个喔!至于指令的用法我们在底下会再介绍。
o /usr/sbin/showmount:这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。这个 showmount 可以用来察看 NFS 分享出来的目录资源喔!
o /var/lib/nfs/xtab:这个档案则是主要的 NFS 的纪录文件咯!当我们的 NFS 分享出目录资源后,到底有哪些 Client 端曾经连接上我们的 NFS 主机呢?呵呵!就是看这个档案的内容即可啰!
二、客户端,为weblogic中间件:
在weblogic和nginx上面:
1.确保weblogic和nfs server的uid,gid一致
~]# id weblogic
uid=500(weblogic) gid=500(weblogic) groups=500(weblogic)
2.目录已创建:
/home/weblogic/respages/, /home/weblogic/hideupload/
3.同样需要安装nfs-utils,这个版本的,貌似客户端也在这个套件里面了,因此客户端也要安装:
yum install -y nfs-utils
su - weblogic
mount -t nfs 10.129.56.90:/nfs/hideupload /home/weblogic/hideupload/
mount -t nfs 10.129.56.90:/nfs/respages /home/weblogic/respages/
4.验证:
在weblogic上面
cd /home/weblogic/hideupload/ 和 /home/weblogic/respages/目录,均可以创建文件没问题
在nginx上面:不能创建文件,这是想要的结果