什么是NFS?分享在CentOS7上實現NFS共享

一.介紹

    NFS 是Network File System的縮寫,即網絡文件系統。一種使用于分散式文件系統的協定,功能是讓客戶端通過網絡訪問不同主機上磁盤里的數據,主要用在類Unix系統上實現文件共享的一種方法。      NFS在文件傳送或信息傳送過程中依賴于RPC協議。RPC,遠程過程調用 (Remote Procedure Call) 是能使客戶端執行其他系統中程序的一種機制。NFS本身是沒有提供信息傳輸的協議和功能的,但NFS卻能讓我們通過網絡進行資料的分享,這是因為NFS使用了一些其它的傳輸協議。而這些傳輸協議用到這個RPC功能的。可以說NFS本身就是使用RPC的一個程序。或者說NFS也是一個RPC SERVER。所以只要用到NFS的地方都要啟動RPC服務,不論是NFS SERVER或者NFS CLIENT。這樣SERVER和CLIENT才能通過RPC來實現PROGRAM PORT的對應。可以這么理解RPC和NFS的關系:NFS是一個文件系統,而RPC是負責負責信息的傳輸。

二.服務端配置

1.關閉系統防火墻和selinux

#查看系統防火墻的狀態,可以看到防火墻是開著的  [root@bogon ~]#systemctl status firewalld  ● firewalld.service - firewalld - dynamic firewall daemon     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)     Active: active (running) since Sat 2017-06-03 09:38:00 CST; 8s ago       Docs: man:firewalld(1)   Main PID: 24067 (firewalld)     CGroup: /system.slice/firewalld.service             └─24067 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid    Jun 03 09:37:58 bogon systemd[1]: Starting firewalld - dynamic firewall daemon...  Jun 03 09:38:00 bogon systemd[1]: Started firewalld - dynamic firewall daemon.  #關閉防火墻  [root@bogon ~]#systemctl stop firewalld  #再次查看防火墻,可以看到已經關閉了  [root@bogon ~]#systemctl status firewalld  ● firewalld.service - firewalld - dynamic firewall daemon     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)     Active: inactive (dead)       Docs: man:firewalld(1)    Jun 01 11:33:35 localhost systemd[1]: Starting firewalld - dynamic firewall daemon...  Jun 01 11:33:44 localhost systemd[1]: Started firewalld - dynamic firewall daemon.  Jun 03 09:11:32 bogon systemd[1]: Stopping firewalld - dynamic firewall daemon...  Jun 03 09:11:34 bogon systemd[1]: Stopped firewalld - dynamic firewall daemon.  Jun 03 09:37:58 bogon systemd[1]: Starting firewalld - dynamic firewall daemon...  Jun 03 09:38:00 bogon systemd[1]: Started firewalld - dynamic firewall daemon.  Jun 03 09:38:34 bogon systemd[1]: Stopping firewalld - dynamic firewall daemon...  Jun 03 09:38:36 bogon systemd[1]: Stopped firewalld - dynamic firewall daemon.  #查看selinux的運行模式,現在為強制模式  [root@bogon share]#getenforce  Enforcing  #把selinux設為許可模式  [root@bogon share]#setenforce 0  #再次查看selinux的運行模式,已經變為許可模式  [root@bogon share]#getenforce  Permissive  #要想禁用selinux,則需要編輯selinux的配置文件,把SELINUX設置成disabled,然后重啟生效  [root@bogon share]#vi /etc/sysconfig/selinux  [root@bogon share]#cat /etc/sysconfig/selinux    # This file controls the state of SELinux on the system.  # SELINUX= can take one of these three values:  #     enforcing - SELinux security policy is enforced.  #     permissive - SELinux prints warnings instead of enforcing.  #     disabled - No SELinux policy is loaded.  SELINUX=disabled  # SELINUXTYPE= can take one of three two values:  #     targeted - Targeted processes are protected,  #     minimum - Modification of targeted policy. Only selected processes are protected.   #     mls - Multi Level Security protection.  SELINUXTYPE=targeted

2.安裝所需的軟件包

[root@bogon ~]#yum install -y rpc-bind nfs-utils

3.服務端配置

NFS服務的主要配置文件為 /etc/exports.  /etc/exports文件內容格式:      <輸出目錄> 客戶端(選項:訪問權限,用戶映射,其他]          輸出目錄是指NFS系統中所定義的共享給客戶端使用的文件系統          客戶端是定義網絡中可以訪問這個NFS共享目錄的IP地址或網段或域名等              客戶端常用的指定方式                  指定ip地址的主機:192.168.100.1                  指定一個子網:192.168.100.0/24 也可以寫成:192.168.100.0/255.255.255.0                  指定域名的主機:david.bsmart.cn                  指定域中的所有主機:*.bsmart.cn                  所有主機:*          選項用來設置輸出目錄的訪問權限、用戶映射等。              NFS主要有3類選項:                  設置輸出目錄只讀:ro                  設置輸出目錄讀寫:rw              用戶映射選項                  all_squash:將遠程訪問的所有普通用戶及所屬組都映射為匿名用戶或用戶組(nfsnobody);                  no_all_squash:與all_squash取反(默認設置);                  root_squash:將root用戶及所屬組都映射為匿名用戶或用戶組(默認設置);                  no_root_squash:與rootsquash取反;                  anonuid=xxx:將遠程訪問的所有用戶都映射為匿名用戶,并指定該用戶為本地用戶(UID=xxx);                  anongid=xxx:將遠程訪問的所有用戶組都映射為匿名用戶組賬戶,并指定該匿名用戶組賬戶為本地用戶組賬戶(GID=xxx);              其它選項                  secure:限制客戶端只能從小于1024的tcp/ip端口連接nfs服務器(默認設置);                  insecure:允許客戶端從大于1024的tcp/ip端口連接服務器;                  sync:將數據同步寫入內存緩沖區與磁盤中,效率低,但可以保證數據的一致性;                  async:將數據先保存在內存緩沖區中,必要時才寫入磁盤;                  wdelay:檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率(默認設置);                  no_wdelay:若有寫操作則立即執行,應與sync配合使用;                  subtree:若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限(默認設置);                  no_subtree:即使輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣可以提高效率;

修改/etc/exports文件,定義nfs共享

#修改NFS配置文件,定義共享  [root@bogon ~]#vi /etc/exports  #定義向所有客戶端共享/share目錄,共享方式為可讀可寫  [root@bogon ~]#cat /etc/exports  /share *(rw,sync)  #創建/share這個共享目錄  [root@bogon ~]#mkdir /share  #把共享目錄的權限設定為所有用戶都可讀可寫權限  [root@bogon ~]#chmod 766 /share  #把NFS加入到開機自啟動選項中  [root@bogon ~]#systemctl enable nfs  Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.  #開啟NFS服務  [root@bogon ~]#systemctl start nfs  #把RPCbind加入開機處啟動選項中  [root@bogon ~]#systemctl enable rpcbind   #啟動RPCbind  [root@bogon ~]#systemctl start rpcbind  #查看NFS服務的狀態 ,可以看到NFS服務已經在運行中  [root@bogon ~]#systemctl status nfs  ● nfs-server.service - NFS server and services     Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)     Active: active (exited) since Sat 2017-06-03 09:22:02 CST; 37min ago   Main PID: 23967 (code=exited, status=0/SUCCESS)     CGroup: /system.slice/nfs-server.service    Jun 03 09:22:02 bogon systemd[1]: Starting NFS server and services...  Jun 03 09:22:02 bogon systemd[1]: Started NFS server and services.  #查看本機共享的文件系統  [root@bogon ~]#exportfs  /share          <world>

三.客戶端配置:

1.客戶端關閉防火墻和selinux,方法同上.

2.客戶端安裝NFS軟件包,并把NFS服務設為開機自啟動,方法同上.

3.掛載共享的NFS文件系統

#把192.168.16.29這個主機上的共享目錄掛載到本機的/media上  [root@bogon ~]#mount 192.168.16.29:/share /media  #查看是否已經掛載成功  [root@bogon ~]#mount | grep media  192.168.16.29:/share on /media type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.16.177,local_lock=none,addr=192.168.16.29)  #把共享目錄寫入系統掛載文件系統  [root@bogon ~]#vi /etc/fstab  [root@bogon ~]#cat /etc/fstab | grep media  192.168.16.29:/share        /media      nfs4    defaults    0 0

四.測試:

1.在服務端共享目錄中新建一個10M大小的文件

[root@bogon media]#cd /share  [root@bogon share]#ls  #在NFS共享目錄上新建一個10M大小的文件,提示成功  [root@bogon share]#dd if=/dev/zero of=/share/f1 bs=1M count=10  10+0 records in  10+0 records out  10485760 bytes (10 MB) copied, 0.0351504 s, 298 MB/s  [root@bogon share]#ll -h  total 10M  -rw-r--r--. 1 root root 10M Jun  3 10:14 f1

2.在客戶端新建另一個文件f2,同時嘗試刪除另一個文件f1

[root@bogon ~]#cd /media  [root@bogon media]#ls  f1  #在共享目錄上新建一個文件f2,未報錯  [root@bogon media]#touch f2  #刪除存在的文件f1,未報錯  [root@bogon media]#rm -f f1

3.在服務端查看共享目錄中的文件

[root@bogon share]#ls  f2

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享