• linux 通过nfs下提供目录共享给其他服务器,就是做了个共享盘


    起因:应用部署在多台服务器上的时候,我们上传文件到一个指定共享目录,这个共享目录要各台服务器都能访问到。程序本地访问到。

    经过:百度一番后,搜索做共享盘用的最多的就是nfs。

    结果:找了个感觉还不错的文档跟着做,试了下,心领神会了。。

    1、准备工作,所有需要用到这个目录的服务器,都需要安装nfs服务,然后设置开启启动,并且把所需服务启动起来。

    安装所需服务nfs、rpcbin

    yum install  -y nfs-utils rpcbind

    分别设置开启启动

    chkconfig nfs on 
    chkconfig rpcbind on

    启动这两个服务 

    service rpcbind start 
    service nfs start

    备注:所有linux的服务启动都是

    重启:[root@VM_15_8_centos server]# service 服务名 restart 
    停止:[root@VM_15_8_centos server]# service 服务名 stop 
    开启:[root@VM_15_8_centos server]# service 服务名 start

    2、创建共享目录

    我这有3台服务器
    192.168.89.137 客户端 A
    192.168.89.138 客户端 B
    192.168.89.139 服务端 S

    2.1 在服务端S上创建共享目录,其实所有服务目录都一样比较好。这里是为了区分服务端与客户端

    mkdir -p /home/soft/nfs/server

    2.2 编辑/etc/exports 文件,添加如下内容

    /home/soft/nfs/server *(rw,no_root_squash,no_all_squash,sync)

    说明:其中

    /home/soft/nfs/server --共享目录位置
    * --IP限制,若是星号则都可以访问,192.168.89.*,则是IP鄙视是192.168.89段的菜可以访问。
    (rw,no_root_squash,no_all_squash,sync) --(rw  ro 该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关。 
    sync  async sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘! 
    no_root_squash  root_squash 客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行! 
    all_squash 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦! 
    no_subtree_check 关闭子树检查 
    anonuid  anongid anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 啰。 
    其他选项可以通过man exports查阅man文档)

    2.3 刷新配置,让修改的配置立即生效
    cd /etc 
    exportfs -r

    2.4 重启服务

    service nfs restart

    2.5 查看服务注册情况

    说明下,如果不设置端口信息,那么nfs会随机启用端口提供服务,不利于服务器之间做安全控制,所以我们设定固定端口,在所有的服务器上都设置相同端口。

    vi /etc/sysconfig/nfs
    文件末端添加如下内容
    
    RQUOTAD_PORT=30001 
    LOCKD_TCPPORT=30002 
    LOCKD_UDPPORT=30002 
    MOUNTD_PORT=30003 
    STATD_PORT=30004
    
    重启服务
    service nfs restart
    
    查看RPC注册情况
    rpcinfo -p localhost

     rpcinfo 选项与参数: 

    -p :针对某 IP (未写则预设为本机) 显示出所有的 port 与 porgram 的信息; 
    -t :针对某主机的某支程序检查其 TCP 封包所在的软件版本; 
    -u :针对某主机的某支程序检查其 UDP 封包所在的软件版本;

    2.6 查询本机的nfs共享盘信息情况

    showmount -e localhost 
    也可以任意客户机
    showmount -e 192.168.89.139

    3、客户端配置

    3.1 挂在盘创建

    执行命令:

    mkdir -p /home/soft/nfs/client

    3.2 配置挂载服务端与客户端关系,提供挂载稳定性,使用TCP进行传输

    执行命令:

    mount -t nfs -o vers=3 服务端IP:服务端目录 当前机器目录 -o proto=指定协议 -o nolock 
    mount -t nfs -o vers=3 192.168.89.139:/home/soft/nfs/server /home/soft/nfs/client -o proto=tcp -o nolock 

    3.4 查看挂载目录情况

    df -h

    3.5 测试

    在任意一台服务器的共享目录下,创建或者上传一个文件 上去。

    然后查看目录下的内容,我这里在137上上传了一个index.html文件

    然后查看各个服务器之间的目录,可以看到服务端与多客户端之间文件已经同步。

    再删除。再看。也都同步了。在服务端139上删除index.html那么客户端也都是删除了的。

    至此测试nfs成功共享文件目录。

    4、 取消挂载

    当我们那个盘符不需要挂载了的时候,客户端

    执行:
    umount /home/soft/nfs/client
    
    提示繁忙 。。device is busy
    
    强制执行:
    umount -lf /home/soft/nfs/client

    执行结果如下:

    [root@localhost client]# umount /home/soft/nfs/client
    umount.nfs: /home/soft/nfs/client: device is busy
    [root@localhost client]# umount -lf /home/soft/nfs/client
    [root@localhost client]# df -h
    文件系统 容量 已用 可用 已用% 挂载点
    devtmpfs 475M 0 475M 0% /dev
    tmpfs 487M 0 487M 0% /dev/shm
    tmpfs 487M 7.7M 479M 2% /run
    tmpfs 487M 0 487M 0% /sys/fs/cgroup
    /dev/mapper/centos-root 27G 6.5G 21G 24% /
    /dev/sda1 1014M 163M 852M 16% /boot
    tmpfs 98M 0 98M 0% /run/user/0

    重启服务后发现,
    之前挂载的目录内容也不见了
    
    service nfs restart

    5、设置开机挂载

    否则重启服务器后,之前命令配置的挂载信息就丢失了

     

     6、windows挂载

    1.开启nfs客户端:打开控制面板》程序》启用或关闭windos功能》选中nfs客户端,点击确定
    .2.挂载:mount 192.168.89.139:/home/soft/nfs/server X:   (此处注意只能定位到nfs目录,否则会报网络错误)

    会创建一个网络盘X盘,里面挂载文件
    3.取消挂载:右键X盘,点击取消连接或者执行命令:umount X:

     打开后,也能看到我们挂载的共享目录的内容

     ok,完成。。

    参考文档:

    https://www.cnblogs.com/xujingyang/p/9209549.html

  • 相关阅读:
    NOIP2016——组合数问题
    BZOJ3450——Tyvj1952(OSU?)
    洛谷4316——绿豆蛙的归宿(期望)
    BZOJ1997——次小生成树(严格次小生成树)
    USACO2002-OPEN-GREEN(GREEN秘密的牛奶管道SECRET)
    Linux系统应急响应
    Linux系统登录相关
    (翻译)Attacking Interoperability(攻击互操作性)in Black Hat 2009 研究报告
    HTTP参数污染(HPP)漏洞
    逻辑漏洞之越权访问漏洞
  • 原文地址:https://www.cnblogs.com/a393060727/p/13043738.html
Copyright © 2020-2023  润新知