一. 场景

在Linux两台虚拟机部署了两个Server站点组成集群,现在要在Windows开放出一个文件夹作为影像服务发布的数据源,不拷贝到server服务器。

Windows设置文件夹共享(开起nfs共享)。在Windows机器需要增加arcgis本地账户,用户名和密码与linux server机器保持一致(或者使用使用对Windows本地要共享文件夹有读写权限的用户名和密码)。

问题: 在Linux站点A创建了挂载文件夹imagedata之后,给arcgis账户开放了权限777。但是只要通过mount命令去挂载,arcgis就会失去对于这个共享文件夹的写入权限,变为root,导致Server注册文件夹失败。

内核启动挂载nfs不可写 windows挂载nfs没权限_内核启动挂载nfs不可写

二. 解决办法

1. Windows下安装NFS服务

首先Windows环境下需要安装NFS服务:

内核启动挂载nfs不可写 windows挂载nfs没权限_arcgis server_02


安装完成之后,Windows文件夹共享菜单的最后会出现一个nfs共享的选项卡。

2 . 设置arcgis账户访问共享。

首先在Linux机器输入id arcgis命令,查询arcgis账户的uid以及gid。
然后打开Windows nfs共享选项卡:

勾选允许匿名访问,并添加arcgis账户的uid,gid。这里是1001。保存。

内核启动挂载nfs不可写 windows挂载nfs没权限_linux_03

3. Linux机器注册挂载文件夹

新创建了一个imagedata2文件夹,位置为/nfsdata/imagedata2。这里的nfsdata为Linux之间的共享存储nfs访问文件夹。但是由于是集群两个节点部署,就需要在机器B也创建一个一样的文件夹/nfsdata/imagedata2。

imagedata2权限设置完成之后,mount命令为:

mount -t cifs //10.118.3.42/image_data /nfsdata/imagedata2 -o username-arcgis password=xxxxxx,uid=1001,gid=1001,vers=2.0

其中:
//10.118.3.42/image_data /nfsdata/imagedata2为Windows文件夹共享路径 ; /nfsdata为Linux挂载文件夹路径

同理,机器B需要进行相同操作。

4. 写入系统

编辑exports文件
vim /etc/exports
在exports文件中增加:

//10.118.3.42/image_data   /nfsdata/imagedata2   cifs  defaults,username=arcgis,password=xxxxxx,uid=1001,gid=1001,rw 0 2

重启nfs服务:

service nfs restart

重启rpcbind服务

service rpcbind restart

在机器B执行相同步骤。

5. 开机自动挂载

此时重启Linux系统后挂载点失效,修改/etc/fstab文件实现自动启动挂载。AB机器加入以下内容:

//10.118.3.42/image_data   /nfsdata/imagedata2   cifs  defaults,username=arcgis,password=xxxxxx,uid=1001,gid=1001,rw 02

6. 注册文件夹到Server

通过AraMap或直接在Server上可以注册文件夹。

注册参考:

内核启动挂载nfs不可写 windows挂载nfs没权限_内核启动挂载nfs不可写_04

publisher路径为Windows共享路径: \\10.118.3.42\image_data
 服务器文件夹路径为Linux上挂载路径: /nfsdata/imagedata2