Linux 磁碟掛載和mount共享、NFS與防火牆配置
一、Linux 磁碟掛載和mount共享
針對Linux伺服器的磁碟掛載mount和共享做簡單操作說明:
1、 檢視已使用的磁碟情況
df –h
2、 檢視所有磁碟
fdisk –l
3、 檢視指定磁碟“/dev/xvde”的分割槽情況
fdisk -l /dev/xvde
如圖可以看到,改磁碟並未分割槽
4、 我們現在需要將/dev/xvde磁碟掛載mount到檔案系統的/opt/huiyy目錄上,
首先對磁碟“/dev/xvde”分割槽(這裡我們採用1個分割槽)
命令fdisk /dev/xvde回車,按如下操作進行:
輸入w寫入
使用fdisk –l檢視剛剛分配的磁碟號
5、 格式化磁碟
命令mkfs -t ext3 /dev/xvde1
-t 指定格式化磁碟的檔案系統型別為ext3,預設不指定為ext2(linux老檔案系統型別)
後面跟剛剛建立的分割槽號“/dev/xvde1”
6、 掛載磁碟
a) 建立磁碟掛載目標資料夾
命令mkdir /opt/huiyy
b) 掛載磁碟
命令mount /dev/xvde1/opt/huiyy
c) 記錄到/ext/fstab檔案中(防止重啟後掛載丟失)
命令vi /etc/fstab
至此磁碟掛載完成,現在我們可以向/opt/huiyy中寫檔案了,檔案將會被寫入到我們掛載的磁碟中。
7、 配置共享
共享目錄“/opt/huiyy/resource”和“/opt/huiyy/log”許可權“rw,sync,no_root_squash”
命令vi /etc/exports編輯內容後:wq儲存退出
共享檢視命令為 more/etc/exports
8、 客戶端mount此目錄
我們把以上配置共享目錄的伺服器作為伺服器A,把我們現在準備mount共享目錄的伺服器作為伺服器B
a) 登入伺服器B
b) mount目錄 “/opt/huiyy/log”(其中61.132.254.160為伺服器A)
mount -t nfs -orw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=061.132.254.160:/opt/huiyy/log /opt/huiyy/log
/opt/huiyy/log 是掛載到本機的目錄,可以自己定義。
c) 儲存mount掛載配置到/etc/fstab(防止伺服器重啟後掛載丟失)
命令vi /etc/fstab編輯
命令cat /etc/fstab檢視配置
現在伺服器B和檔案源伺服器A上都可以對目錄“/opt/huiyy/log”下建立檔案、目錄了。
二、mount常用命令
1、啟動NFS伺服器
為了使NFS伺服器能正常工作,需要啟動portmap和nfs兩個服務,並且portmap一定要先於nfs啟動。
#service portmap start
#service nfs start
RHEL4和5是portmap 和 nfs,RHEL6以後改名叫作rpcbind 和 nfs-server 了
另外RHEL 7以後對服務的操作命令建議使用:systemctl [status|stop|start|restart] [serviceName]
如:systemctl status rpcbind 、 systemctl restart nfs-server
2、查詢NFS伺服器狀態
#service portmap status
#service nfs status
3、停止NFS伺服器
要停止NFS執行時,需要先停止nfs服務再停止portmap服務,對於系統中有其他服務(如NIS)需要使用時,不需要停止portmap服務
#service nfs stop
#service portmap stop
4、重啟portmap 和nfs 服務
#service portmap restart
#service nfs restart
#exportfs
5、設定NFS伺服器的自動啟動狀態
對於實際的應用系統,每次啟動LINUX系統後都手工啟動nfs伺服器是不現實的,需要設定系統在指定的執行級別自動啟動portmap和nfs服務。
#chkconfig --list portmap
#chkconfig --list nfs
設定portmap和nfs服務在系統執行級別3和5自動啟動。
#chkconfig --level 35 portmap on
#chkconfig --level 35 nfs on
6、伺服器端使用showmount命令查詢NFS的共享狀態
#showmount –e //預設檢視自己共享的服務,前提是要DNS能解析自己,不然容易報錯
#showmount –a IP 顯示指定NFS伺服器的客戶端以及伺服器端在客戶端的掛載點
#showmount –d IP 顯示指定NFS伺服器在客戶端的掛載點#showmount –e IP 顯示指定NFS伺服器上的共享目錄列表(或者叫輸出列表)7、顯示已經與客戶端連線上的目錄資訊
#showmount -a
8、客戶端使用showmount命令查詢NFS的共享狀態
#showmount -e NFS伺服器IP
三、mount與防火牆配置
如果伺服器端的防火牆有開著的話,在我們執行mount的時候將會提示錯誤,如下:
mount:mount to NFS server '192.168.0.10' failed: System Error: No route to host.
這個主要是因為防火牆的問題導致的防火牆上開放對應埠即可
由於nfs服務需要開啟 mountd,nfs,nlockmgr,portmapper,rquotad這5個服務,需要將這5個服務的埠加到iptables裡面
而nfs 和portmapper兩個服務是固定埠的,nfs為2049,portmapper為111。其他的3個服務是用的隨機埠,那就需要先把這3個服務的埠設定成固定的。
用命令 rpcinfo -p 檢視當前這5個服務的埠,並記錄下來。
其中nfs 2049、portmapper111,以及剩下3個服務的埠各記錄一個,這樣我們就得到了5個埠,如下:
nfs 2049
portmapper 111
mountd 976
rquotad 966
nlockmgr 33993
下面將mountd、rquotad、nlockmgr這3個埠設定為固定埠,修改/etc/service,新增以下內容:
vi/etc/services
在檔案的最後一行新增:
mountd 976/tcp
mountd 976/udp
rquotad 966/tcp
rquotad 966/udp
nlockmgr 33993/tcp
nlockmgr 33993/udp
儲存並退出。
然後設定nfs配置檔案,配置埠使 rquotad、nlockmgr、mountd的埠固定,如下:
vi/etc/sysconfig/nfs
RQUOTAD_PORT=966
LOCKD_TCPPORT=33993
LOCKD_UDPPORT=33993
MOUNTD_PORT=976
其中 portmapper和nfs 服務埠是固定的分別是 111和2049
重啟下nfs服務。 service nfs restart
在防火牆中開放這5個埠
編輯iptables配置檔案
vim /etc/sysconfig/iptables
新增如下行:
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 976 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 966 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 33993 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 976 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 2049 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 966 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 33993 -j ACCEPT |
儲存退出並重啟iptables
service iptables restart
然後重新掛載即可。
補充資料:
ro 只讀訪問 rw 讀寫訪問 sync 所有資料在請求時寫入共享 async NFS在寫入資料前可以相應請求 secure NFS通過1024以下的安全TCP/IP埠傳送 insecure NFS通過1024以上的埠傳送 wdelay 如果多個使用者要寫入NFS目錄,則歸組寫入(預設) no_wdelay 如果多個使用者要寫入NFS目錄,則立即寫入,當使用async時,無需此設定。 hide 在NFS共享目錄中不共享其子目錄 no_hide 共享NFS目錄的子目錄 subtree_check 如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的許可權(預設) no_subtree_check 和上面相對,不檢查父目錄許可權 all_squash 共享檔案的UID和GID對映匿名使用者anonymous,適合公用目錄。 no_all_squash 保留共享檔案的UID和GID(預設) root_squash root使用者的所有請求對映成如anonymous使用者一樣的許可權(預設) no_root_squash root使用者具有根目錄的完全管理訪問許可權 anonuid=xxx 指定NFS伺服器/etc/passwd檔案中匿名使用者的UID anongid=xxx 指定NFS伺服器/etc/passwd檔案中匿名使用者的GID |
---------------------------
(完)