阿里云上给ECS主机新加了一块磁盘,需要挂载到另一个云主机内网,存放系统日志。
阿里云新购买的磁盘时绑定主机的,所以只能通过nfs的方式给挂载到日志主机上面。
一、安装 NFS 服务器所需的软件包:
1 | |
二、编辑exports文件,添加从机
1 2 | /logwarehouse 192.168.0.7(rw,all_squash,anonuid=0,anongid=0) |
192.168.0.7 机器可以挂载NFS服务器上的/data目录到自己的文件系统中
rw表示可读写;sync表示同步写,(不要包含fsid=0!!!表示将/data找个目录包装成根目录,否则从机切换到非root用户后,再访问挂载后端分区,提示permission denied错误!)具体参数说明点击这里
×××××参数说明
- #:允许ip地址范围在192.168.0.*的计算机以读写的权限来访问/home/work 目录。
- /home/work 192.168.0.*(rw,sync,root_squash)
- /home 192.168.1.105 (rw,sync)
- /public * (rw,sync)
- 配置文件每行分为两段:第一段为共享的目录,使用绝对路径,第二段为客户端地址及权限。
- 地址可以使用完整IP或网段,例如10.0.0.8或10.0.0.0/24,10.0.0.0/255.255.255.0当然也可以地址可以使用主机名,DNS解析的和本地/etc/hosts解析的都行,支持通配符,例如:*.chengyongxu.com
- 权限有:
- 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值。
三、启动nfs服务
先为rpcbind和nfs做开机启动:
1 2 | |
然后分别启动rpcbind和nfs服务:
1 2 | |
确认NFS服务器启动成功:
1 | |
检查 NFS 服务器是否挂载我们想共享的目录 /data:
1 2 3 4 | |
四、在从机上安装NFS 客户端
首先是安裝nfs,同上,然后启动rpcbind服务
先为rpcbind做开机启动:
1 | |
然后启动rpcbind服务:
1 | |
注意:客户端不需要启动nfs服务
检查 NFS 服务器端是否有目录共享:
1 | |
在从机上使用 mount 挂载服务器端的目录/data到客户端某个目录下:
1 2 3 | |
想在客户机上实现开机挂载,则需要编辑/etc/rc.d/rc.local
1 2 3 | mount -t nfs 192.168.0.6:/logwarehouse /logwarehouse |
客户端挂载后,写文件时可能会报一个权限问题:Permission denied。
解决这个问题可以修改nfs主服务器/etc/exports文件,改成如下內容:
1 2 3 | |
查看服务器uid
1 2 | |
重新读取NFS配置文件:
1 | |
可使用如下命令查看配置
1 | |