1. 程式人生 > >Linux 磁碟掛載和mount共享、NFS與防火牆配置

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

---------------------------

(完)