又是碰到的问题,继续做记录备份。
涉及到服务器之间文件共享,需用到NFS共享设置,服务器为Ubuntu 12.04 64位。
准备环境
服务器两台:
服务端: 192.168.1.1
客户端: 192.168.1.2
服务端操作
1,首先安装nfs服务(以下操作自行切换root用户)
apt-get install nfs-kernel-server
2,安装完成后,编辑设置文件:
vi /etc/exports
新安装的是一个空文件,只有部分注释,在下方加入:
/mydata 192.168.1.2(rw,sync,no_root_squash,no_subtree_check)
释义:
/mydata : 本地要共享的文件夹名称;
192.168.1.2:欲让访问的服务器地址,也可以写* ,或192.178.1.* 这样的通配符;
rw:读写权限
sync:同步写入内存和硬盘
no_root_squash:root用户拥有所有权限
no_subtree_check:不对共享文件夹内的上级目录权限做检查
如若共享多个目录,添加多行即可。
3,重启NFS相关服务
/etc/init.d/portmap restart
/etc/init.d/nfs-kernel-server restart
4,查看共享目录
showmount -e
服务器端的安装已经完成,接下来操作访问的服务器端。
客户端(访问的服务器)
1,同样安装nfs服务
apt-get install nfs-kernel-server
2,在本地挂载共享的文件夹,先在本地服务器创建一个文件夹,用来挂载共享的文件夹。
mkdir nfsdisk
接下来挂载:
mount -t nfs 192.168.1.1:/mydata /nfsdisk
注:以上操作需root权限,上面命令中的地址是主服务器的地址后面跟冒号和主服务器共享文件夹地址,接着空格,跟上本地要挂载的文件夹。
可以尝试创建个文件或文件夹,再返回主服务器看下该目录下是否出现。
附加操作
1,取消挂载
sudo umount /netdisk
如若提示 "device is busy",标示该目录正在被使用,使用以下命令:
fuser -km /netdisk
df -lh
然后再执行umount操作
2,添加开机自动挂载
vi /etc/rc.local
在exit()之前,添加上面的挂载命令:
mount -t nfs 192.168.1.1:/mydata /nfsdisk
3,常用参数
ro 只读访问
rw 读写访问
sync 同步写入资料到内存与硬盘中
async 资料会先暂存于内存中,而非直接写入硬盘
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squash root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
完。