安装 NFS 服务器所需的软件包: 这里用两台机器做实验一台NFS服务机和一台NFS客户端:
Centos6.5编译安装DNS-bind-9.10初始化安装设置 http://linux.it.net.cn/CentOS/server/set/2016/0519/22063.html
安装NFS:
[root@master ~]# yum install nfs-utils
这会将有的的软件包全部安装完成。
编辑/etc/exports文件,这个文件初始状态下没有内容,增加下面内容.(注意:如果这里使用了*通配符, 有可能客户端会连接不上出现 mount.nfs4: access denied by server while mounting master.it.net.cn:/,nfs有的版本对通配符支持不好,可以试试你的通配符支持效果): [root@master ~]# vim /etc/exports /home/hadoop/.ssh 192.168.*(rw,sync,fsid=0) rw表示可读可写;sync表示同步写內存和磁盘,fsid=0表示將/home/exp这个文件夹包裝成起始根目录.
打开这些服务: [root@node1 ~]# chkconfig rpcbind on [root@node1 ~]# chkconfig nfs on 启动 [root@node1 ~]# service rpcbind start [root@node1 ~]# service nfs start
确认NFS是否安装成功:
[root@node1 ~]# rpcinfo -p
检查 NFS 服务器是否输出共享的目录: [root@master ~]# exportfs /home/hadoop/.ssh 192.168.*
如果再次修改了exports文件,不用重启NFS,重新加载一次就可以 [root@master ~]# exportfs -rv 查看加载结果 [root@master ~]# exportfs -v /home/hadoop/.ssh 192.168.*(rw,wdelay,root_squash,no_subtree_check,fsid=0)
NFS客户机操作: 先如上安装NFS软件 [root@node1 ~]# chkconfig rpcbind on [root@node1 ~]# chkconfig nfs on [root@node1 ~]# service rpcbind start
检查NFS服务端是否有共享目录:
[hadoop@node1 exp]$ showmount -e master.it.net.cn /home/hadoop/.ssh 192.168.*
新建用于放置挂载文件的目录, [root@node1 ~]# mkdir -p /home/exp 注意/home/exp权限能允许挂载: [root@node1 /]# ll /home drwxr-xr-x 2 root root 4096 Aug 11 01:10 exp
挂载NFS服务器中的目录,挂载到本地的/home/exp [root@node1 ~]# mount -t nfs4 master.it.net.cn:/ /home/exp
查看挂载状态: [root@node1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 18G 4.3G 13G 26% / tmpfs 250M 0 250M 0% /dev/shm /dev/sda1 291M 33M 244M 12% /boot master.it.net.cn:/ 18G 7.6G 9.1G 46% /home/exp
相关命令: [root@node1 ~]# umount /home/exp
查看挂载后文件夹的权限,这里是只允许hadoop用户操作.root用户不能操作.hadoop更改权限root才可以直接操作 [root@node1 /]# ll /home drwx------ 2 hadoop hadoop 4096 Aug 11 06:21 exp
客户端机器开机启动自动挂载: 格式: <server>:</remote/export> </local/directory> nfs < options> 0 0 增加下面内容: [root@node1 ~]# vim /etc/fstab master.it.net.cn:/ /home/exp nfs4 ro,hard,intr,proto=tcp,port=2049 0 0
到此NFS的设置就已经完成了.可以访问/home/exp进行操作了.
下面来配置SSH的免密码访问 假设NFS的服务端和客户端都有hadoop用户,用hadoop用户来进行ssh免密码通信.
NFS服务器切换到hadoop用户: [hadoop@master ~]$ ssh-keygen -t rsa [hadoop@master ~]$ cp .ssh/id_rsa.pub .ssh/authorized_keys 这里的authorized_keys是用于认证的公钥文件
连接自己,看看是否免密码.如果需要密码,请看下面的问题1解决方案.如果不需要密码,则本机到本机成功. [hadoop@master ~]$ ssh master.it.net.cn
NFS客户端切换到hadoop用户: [hadoop@node1 ~]$ ssh-keygen -t rsa 将挂载目录的authorized_keys 软连接到hadoop用户的.ssh目录下(注意:因为源文件和目标文件不再同一个目录,所以源文件和目标文件一定要使用绝对路径,否则会出现错误Too many levels of symbolic links错误) [hadoop@node1 ~]$ ln -s /home/exp/authorized_keys /home/hadoop/.ssh/ 将本机生成的.ssh/id_rsa.pub文件,追加到.ssh/authorized_keys中 [hadoop@node1 ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys 查看.ssh/authorized_keys文件内容,里面有node1和master: [hadoop@node1 ~]$ cat .ssh/authorized_keys
OK,到这里就设置完成了.
测试master和node1是否可以免密码访问了 [hadoop@master ~]$ ssh master.it.net.cn [hadoop@master ~]$ ssh node1.it.net.cn
[hadoop@node1 ~]$ ssh master.it.net.cn [hadoop@node1 ~]$ ssh node1.it.net.cn
相互再测试ping一下,OK没有问题.到这里就结束了.
下面介绍一下相关配置的说明和可能出现错误的处理:
exports文件内容格式: 1.输出目录:
2.客户端:
3.选项:
用户映射选项 其它选项
exportfs 命令格式如下: # exportfs [-aruv]
-a 全部挂载或卸载 /etc/exports中的内容
具体例子:
/etc/fstab格式: Fs_spec fs_file fs_type fs_options fs_dump fs_pass Fs_spec:定义希望加载的文件系统所在的设备或远程文件系统,对于nfs则设为IP:/共享目录 Fs_file:本地挂载点 Fs_type:挂载类型 Fs_options:挂载参数 Fs_dump:该选项被“dump”命令使用来检查一个文件系统该以多快频率进行转储,若不需转储即为0 Fs_pass:该字段被fsck命令使用来决定在启动时需要被扫描的文件系统的顺序,根文件系统“/”对应该字段值为1,其他文件系统为2,若该文件系统无需在启动时被扫描则为0
问题1解决方案: 如果ssh连接出现问题,需要输入密码才能连接:but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
修改文件:/etc/ssh/ssh_config (责任编辑:IT) |