NFS:Network File System 網絡檔案系統,Unix系統之間共享檔案的一種協定 NFS 的用戶端主要為Linux 支援多節點同時挂載以及并發寫入
1.nfs NFS(Network File System)即網絡檔案系統,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的用戶端應用可以透明地讀寫位于遠端NFS伺服器上的檔案,就像通路本地檔案一樣,也就是說用戶端PC可以挂載NFS伺服器所提供的目錄并且挂載之後這個目錄看起來如同本地的磁盤分區一樣,可以使用cp、cd、mv、rm及df等與磁盤相關的指令。
2.NFS的優缺點
優點
a.節省本地存儲空間将常用的資料存放在一台伺服器可以通過網絡通路 b.簡單容易上手 c.友善部署非常快速,維護十分簡單
缺點
a.局限性容易發生單點故障,及server機當機了所有用戶端都不能通路 b.在高并發下NFS效率/性能有限 c.用戶端沒用使用者認證機制,且資料是通過明文傳送,安全性一般(一般建議在區域網路内使用) d.NFS的資料是明文的,對資料完整性不做驗證 e.多台機器挂載NFS伺服器時,連接配接管理維護麻煩
3.NFS配置知識: 3.1權限參數:
權限參數類型 功能 rw 可讀寫的權限 ro 隻讀的權限 sync(同步) 資料同步寫入到記憶體與硬碟中(慢,不容易丢資料) async(異步) 資料會暫存于記憶體當中,而不是寫入硬碟(快,容易丢資料) no_root_squash 用戶端用root使用者通路該共享檔案夾時, root使用者不會映射成匿名使用者(極不安全,不建議使用) root_squash 用戶端用root使用者通路該共享檔案夾是,将root使用者映射為匿名使用者 all_squash 不論登入NFS的使用者身份是誰,他的身份都會被壓縮成匿名使用者(nfsnobody) anonuid=xxx 指定NFS伺服器的匿名使用者UID anongid=xxx 指定NFS伺服器的匿名使用者GID insecure NFS通過1024以上的端口發送 secure NFS通過1024以下的安全TCP/IP端口發送 hide 在NFS共享目錄中共享其子目錄 no_hide 在NFS共享目錄中共享其子目錄 wdelay 如果多個使用者寫入NFS目錄,則歸組寫入(預設) no_wdelay 如果多個使用者寫入NFS目錄,則立即寫入,當使用async時,無需此設定 subtree_check 在共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限(預設) no_subtree_check 和上面相對,不檢查父目錄權限
3.2 常用指令:
指令 參數 含義 exportfs -a 遞增式更新,對/etc/export增加或修改的部分進行挂載和解除安裝 -i<檔案> 指定配置檔案 -r 更新配置重新讀取/etc/exports -u 解除安裝指定的目錄 -o 使用指定的參數 -v 顯示共享詳細情況 showmount -a或--all 以host:dir 這樣的格式來顯示客戶主機名和挂載點目錄 -d 或 --directories 僅顯示用戶端挂載的目錄名 -e或--exports 顯示NFS伺服器輸出清單 -h或--help 顯示幫助資訊 -v或--version 顯示版本資訊 --no-headers 禁止輸出描述頭部資訊
一.NFS (服務端和用戶端都需要安裝nfs,但用戶端不需要修改配置檔案)
服務端: 1. 安裝nfs [[email protected] ~]# yum -y install nfs-utils 2.共享date step1. # mkdir /date -----(根目錄下,與step3同步) step2. # vim /etc/exports step3. 配置檔案中寫入: /date 172.16.84.0.24(rw,sync,no_root_squash) step4. # systemctl restart rpcbind step5. # iptables -F step6. # iptables -X step7. # setenforce 0 step8. # systemctl restart rpcbind step9. # systemctl restart nfs
用戶端: step1. # showmount -e 172.16.84.128 Export list for 172.16.84.128: /date 172.16.84.0/24 step2. mount.nfs 172.16.84.128:/date /mnt step3. # df 172.16.84.128:/date 17811456 1120768 16690688 7% /mnt step4. # cd /mnt step5. # touch aa.txt step6. 切換到伺服器端的/date下檢視aa.txt是否存在; step7. 也可以在用戶端的/mnt下增删改;
二.Samba 服務端: 1. 安裝軟體 [[email protected] ~]# yum -y install samba
2. 建立共享所需要目錄 [[email protected] ~]# mkdir /data [[email protected] ~]# chmod 777 /data [[email protected] ~]# cp -rf /etc/hosts /data/
3.建立通路使用者 [[email protected] ~]# useradd alice [[email protected] ~]# useradd jack [[email protected] ~]# smbpasswd -a alice [[email protected] ~]# smbpasswd -a jack
4.修改配置檔案 smb.conf檔案的配置内容: [global]:全局設定 [homes]:使用者目錄共享設定 [printers]:列印機共享設定 [myshare]:自定義名稱的共享目錄設定 輔助配置内容: 注釋行:以 # 号開頭的行 配置樣例行:以 ; 号開頭的行 常見共享目錄配置項的含義: comment:對共享目錄的注釋、說明資訊 path:共享目錄在伺服器中對應的實際路徑 browseable:該共享目錄在“網路上的芳鄰”中是否可見 guest ok:是否允許所有人通路,等效于“public” writable:是否可寫,與read only的作用相反
step1. # vim /etc/samba/smb.conf [data] path = /data ;valid users = alice jack ;hosts allow = 172.16.84. -----必須與測試端網絡段保持一緻 writable = yes 5.重新開機服務: # systemctl start smb
windows網頁端測試: 1. 打開為indows網頁輸入 \\172.16.84.128; 2. 點選使用者登入檢視; 3. 可以在網頁端增減删除;