zoukankan      html  css  js  c++  java
  • centos7 搭建nfs文件系统

    1)背景:k8s测试环境,需要用到pv,所以决定自己搭建一个nfs,用于支持。

    2)NFS简介:

    NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

    3)搭建

    系统:centos7 

    软件:nfs-utils和rpcbind

    3.1)服务器端操作

    yum install nfs-utils rpcbind

    启动
    systemctl statrt nfs
    systemctl statrt rpcbind

    开机启动
    systemctl enable nfs
    systemctl enable rpcbind

    启动后状态
    systemctl status nfs
    systemctl status rpcbind

    创建共享目录
    mkdir -p /hone/data/nfs/server

    编辑/etc/exports文件添加如下内容
    vim /etc/exports
    /home/data/nfs/server *(rw,no_root_squash,no_all_squash,sync)

    ① /home/data/nfs/server —要共享的目录 

    ② * 处代表限制访问的ip段 

    可以填192.168.0.* —允许访问的网段,也可以是ip地址、主机名(能够被服务器解析) 
    可以填192.168.0.123/24 
    *(所有人都能访问)

    ③ 括号内的常见参数有: 
    参数值 内容说明 
    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文档

    刷新配置立即生效
    exportfs -r

    重启nfs
    systemctl restart nfs


    查看 RPC 服务的注册状况
    [root@localhost server]# rpcinfo -p localhost
    program vers proto port service
    100000 4 tcp 111 portmapper
    100000 3 tcp 111 portmapper
    100000 2 tcp 111 portmapper
    100000 4 udp 111 portmapper
    100000 3 udp 111 portmapper
    100000 2 udp 111 portmapper
    100024 1 udp 50159 status
    100024 1 tcp 36075 status
    100005 1 udp 20048 mountd
    100005 1 tcp 20048 mountd
    100005 2 udp 20048 mountd
    100005 2 tcp 20048 mountd
    100005 3 udp 20048 mountd
    100005 3 tcp 20048 mountd
    100003 3 tcp 2049 nfs
    100003 4 tcp 2049 nfs
    100227 3 tcp 2049 nfs_acl
    100003 3 udp 2049 nfs
    100003 4 udp 2049 nfs
    100227 3 udp 2049 nfs_acl
    100021 1 udp 45469 nlockmgr
    100021 3 udp 45469 nlockmgr
    100021 4 udp 45469 nlockmgr
    100021 1 tcp 41903 nlockmgr
    100021 3 tcp 41903 nlockmgr
    100021 4 tcp 41903 nlockm

    选项与参数:

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

    本机查询nfs服务器
    showmount -e localhost

    选项与参数:
    -a :显示目前主机与客户端的 NFS 联机分享的状态;
    -e :显示某部主机的 /etc/exports 所分享的目录数据。

    客户端配置:
    创建挂载点
    mkdir -p /home/data/nfs/client

    查看服务器抛出的共享目录信息
    yum install showmount -y
    [root@k8s-lb-backup ~]# showmount -e 10.1.9.180
    Export list for 10.1.9.180:
    /home/data/nfs/server *

    挂载目录
    为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议
    mount -t nfs -o vers=3 10.1.9.180:/home/data/nfs/server /home/data/nfs/client -o proto=tcp -o nolock

    查看挂载的目录
    [root@k8s-lb-backup ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    devtmpfs 475M 0 475M 0% /dev
    tmpfs 486M 0 486M 0% /dev/shm
    tmpfs 486M 7.7M 479M 2% /run
    tmpfs 486M 0 486M 0% /sys/fs/cgroup
    /dev/mapper/centos-root 27G 1.4G 26G 6% /
    /dev/sda2 1014M 142M 873M 14% /boot
    /dev/sda1 200M 12M 189M 6% /boot/efi
    tmpfs 98M 0 98M 0% /run/user/0
    10.1.9.180:/home/data/nfs/server 47G 33M 47G 1% /home/data/nfs/client


    测试:
    服务端
    [root@localhost server]# echo “test” > test.txt
    [root@localhost server]# pwd
    /home/data/nfs/server

    客户端
    [root@k8s-lb-backup client]# pwd
    /home/data/nfs/client
    [root@k8s-lb-backup client]# cat test.txt
    “test”


    取消挂载:
    [root@k8s-lb-backup ~]# umount /home//data/nfs/client/
    [root@k8s-lb-backup ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    devtmpfs 475M 0 475M 0% /dev
    tmpfs 486M 0 486M 0% /dev/shm
    tmpfs 486M 7.7M 479M 2% /run
    tmpfs 486M 0 486M 0% /sys/fs/cgroup
    /dev/mapper/centos-root 27G 1.4G 26G 6% /
    /dev/sda2 1014M 142M 873M 14% /boot
    /dev/sda1 200M 12M 189M 6% /boot/efi
    tmpfs 98M 0 98M 0% /run/user/0

    如果显示:device is busy,可以使用-lf参数强行删除
    umount –lf /home//data/nfs/client/

    固定nfs服务端口
    为了方便配置防火墙,需要固定nfs服务端口
    NFS启动时会随机启动多个端口并向RPC注册,这样如果使用iptables对NFS端口进行限制就会有点麻烦,可以更改配置文件固定NFS服务相关端口。

    [root@localhost server]# rpcinfo -p localhost
    program vers proto port service
    100000 4 tcp 111 portmapper
    100000 3 tcp 111 portmapper
    100000 2 tcp 111 portmapper
    100000 4 udp 111 portmapper
    100000 3 udp 111 portmapper
    100000 2 udp 111 portmapper
    100024 1 udp 50159 status
    100024 1 tcp 36075 status
    100005 1 udp 20048 mountd
    100005 1 tcp 20048 mountd
    100005 2 udp 20048 mountd
    100005 2 tcp 20048 mountd
    100005 3 udp 20048 mountd
    100005 3 tcp 20048 mountd
    100003 3 tcp 2049 nfs
    100003 4 tcp 2049 nfs
    100227 3 tcp 2049 nfs_acl
    100003 3 udp 2049 nfs
    100003 4 udp 2049 nfs
    100227 3 udp 2049 nfs_acl
    100021 1 udp 45469 nlockmgr
    100021 3 udp 45469 nlockmgr
    100021 4 udp 45469 nlockmgr
    100021 1 tcp 41903 nlockmgr
    100021 3 tcp 41903 nlockmgr
    100021 4 tcp 41903 nlockmgr


    分配端口,编辑配置文件:
    vim /etc/sysconfig/nfs
    末尾添加:
    RQUOTAD_PORT=39001
    LOCKD_TCPPORT=39002
    LOCKD_UDPPORT=39002
    MOUNTD_PORT=39003
    STATD_PORT=39004

    重启nfs
    systemctl restart nfs

    查看结果
    [root@localhost server]# rpcinfo -p localhost
    program vers proto port service
    100000 4 tcp 111 portmapper
    100000 3 tcp 111 portmapper
    100000 2 tcp 111 portmapper
    100000 4 udp 111 portmapper
    100000 3 udp 111 portmapper
    100000 2 udp 111 portmapper
    100024 1 udp 50159 status
    100024 1 tcp 36075 status
    100005 1 udp 39003 mountd
    100005 1 tcp 39003 mountd
    100005 2 udp 39003 mountd
    100005 2 tcp 39003 mountd
    100005 3 udp 39003 mountd
    100005 3 tcp 39003 mountd
    100003 3 tcp 2049 nfs
    100003 4 tcp 2049 nfs
    100227 3 tcp 2049 nfs_acl
    100003 3 udp 2049 nfs
    100003 4 udp 2049 nfs
    100227 3 udp 2049 nfs_acl
    100021 1 udp 39002 nlockmgr
    100021 3 udp 39002 nlockmgr
    100021 4 udp 39002 nlockmgr
    100021 1 tcp 39002 nlockmgr
    100021 3 tcp 39002 nlockmgr
    100021 4 tcp 39002 nlockmgr

    可以看到,随机端口以固定
    接下来,iptables就可以固定开放端口


    客户端设置开机启动

    vim /etc/fstab
    10.1.9.180:/nfs_data /home/nfs/client nfs defaults 0 0


    完成

  • 相关阅读:
    201771010109-焦旭超 实验三 结对项目—《西北师范大学疫情防控信息系统》项目报告
    201771010109-焦旭超 实验二 个人项目—《西北师范大学学生疫情上报系统》项目报告
    201771010109-焦旭超 实验一 软件工程准备—<初读《现代软件工程—构建之法》>
    201771010109焦旭超《面向对象程序设计》第十八周学习总结
    201771010109焦旭超《面向对象程序设计(java)》第十七周学习总结
    201771010109焦旭超《面向对象程序设计(java)》第十六周学习总结
    焦旭超201771010109《面向对象程序设计(java)》第十五周学习总结
    焦旭超 201771010109 《面对对象程序设计(java)》第十四周学习总结 第十三组
    201771010109焦旭超《面向对象程序设计(java)》第十三周学习总结
    201771010116-马凯军 实验四 软件项目案例分析
  • 原文地址:https://www.cnblogs.com/ccielife/p/13301067.html
Copyright © 2011-2022 走看看