Linux掛載與軟連接(轉)

原文鏈接https://blog.csdn.net/lusijie1/article/details/78481799

在使用 Linux 時,有時候會因爲初始時磁盤空間分配估計不足,使用中需要將掛載點擴容的情況,這就需要我們掛載新的磁盤。但是如果我們在 Linux 運行過程中掛載磁盤, Linux 又不能在不重啓的情況下自動識別,這時就需要我們使用下面的操作使 Linux 在不重啓的情況下識別新掛載的磁盤。
首先,查看主機總線號,磁盤肯定是有總線連接着的:
[root@localhost ~]# ls /sys/class/scsi_host/
host0 host1 host2
其次,重新掃描SCSI 總線來添加設備:
[root@localhost ~]# echo “- - -” > /sys/class/scsi_host/host0/scan
[root@localhost ~]# echo “- - -” > /sys/class/scsi_host/host1/scan
[root@localhost ~]# echo “- - -” > /sys/class/scsi_host/host2/scan
之所以掃描的是SCSI 總線,是因爲我們添加的是 SCSI 類型的磁盤。
再次,查看一下新掛載的磁盤,此時 Linux 已經可以識別新添加的磁盤:
[root@localhost ~]# fdisk -l
最後,對新掛載的磁盤進行分區,格式化,掛載即可使用。
 
補充:爲掛載點擴容
假設之前我們有一個掛載點爲 /data ,此時 /data 已經寫滿,但依然想在 /data 下添加新的數據,這時可以使用軟鏈接將 /data 軟鏈接到一個新掛載的磁盤分區上以實現擴容。具體步驟如下所示。
(1)創建一個目錄,以便稍後作爲掛載點:
[root@localhost ~]# mkdir /newdata
(2)將 /dev/sdb1 分區掛載到 /newdata 下:
[root@localhost ~]# mount /dev/sdb1 /newdata
(3)創建 /data 到 /newdata 的軟鏈接:
[root@localhost ~]# ln -s /newdata /data
此時在 /data 目錄下會有一個軟鏈接文件 newdata 指向 /newdata/ ,即 newdata -> /newdata/ 。這樣一來,只要我們向 /data/newdata 下寫文件,實際就寫入了 /newdata/ 目錄下,相當於我們爲原 /data 掛載點新增加了一部分使用空間。也可以手動指定該軟鏈接文件的名稱:
[root@localhost ~]# ln -s /newdata /data/customed_name
這樣就有 /data/customed_name -> /newdata 。
注:我們也可以利用軟鏈接的這一用途,將比較大的日誌文件鏈接到存儲空間充足的磁盤分區的掛載點上。舉例來說,如果 /opt/tomcat/logs/catalina.out 日誌文件輸入很多,佔用空間很大,而 /opt 掛載點中所剩空間已經不多,存在溢出風險,通過下面兩步就可以將該日誌文件軟鏈接到另一個磁盤分區的掛載點上:
[root@localhost ~]# touch /newdata/catalina_link.out
[root@localhost ~]# ln -sf /newdata/catalina_link.out /opt/tomcat/logs/catalina.out
這裏還需要注意三點,一是必須先創建一個被鏈接的文件,否則軟鏈接後失敗;二是強制軟鏈接會清空之前 /opt/tomcat/logs/catalina.out 日誌文件中的全部內容清空;三是需要重啓 tomcat 目錄後才能繼續向 /opt/tomcat/logs/catalina.out 寫入。






目前的項目開發過程中都是採用分佈式,在上傳文件的時候,文件不一定會在同一臺機器中,因此就需要跨機器共享文件,在這裏就簡單的採用nfs實現跨機器的文件共享。
1、安裝nfs和rpcbind(在centOS6之前是portmap)
      檢查自己的電腦是否已經默認安裝了nfs和rpcbind:
[plain] view plain copy
[root@unsion2 ~]# rpm -aq | grep nfs  
nfs-utils-1.2.3-54.el6.x86_64  
nfs4-acl-tools-0.3.3-6.el6.x86_64  
nfs-utils-lib-1.1.5-9.el6.x86_64  
[root@unsion2 ~]# rpm -aq | grep rpcbind  
rpcbind-0.2.0-11.el6.x86_64  
這表示系統已經默認安裝。如果沒有安裝也沒事,可以採用下面的命令安裝(需要聯網,會用虛擬機的就不多說怎麼聯網了):
[plain] view plain copy
[root@unsion2 ~]# yum install nfs-utils rpcbind  
2、配置nfs的配置文件和hosts文件
      創建需要共享的目錄:
[plain] view plain copy
[root@unsion2 ~]# cd /tmp  
[root@unsion2 tmp]# mkdir test  
配置nfs的配置文件:
[plain] view plain copy
[root@unsion2 ~]# vim /etc/exports  
在這個文件中添加需要輸出的目錄,如:
/tmp/test 192.168.56.202(rw)
/tmp/test:表示的是服務器共享輸入的目錄
192.168.56.202:表示可以掛在服務器目錄的客戶端ip
(rw):表示該客戶端對共享的文件具有讀寫權限
      配置hosts文件:
[plain] view plain copy
[root@unsion2 ~]# vim /etc/hosts  
      在文件中添加下面這句話
      192.168.56.201 unsion2
      192.168.56.201:表示服務器本機的ip地址
      unsion2:表示服務器的機器名
3、啓動nfs和rpcbind服務、檢測服務狀態、已經設置服務開機啓動
啓動服務:
[plain] view plain copy
[root@unsion2 ~]#service rpcbind start  
[root@unsion2 ~]#service nfs start  
測試狀態:
[plain] view plain copy
[root@unsion2 ~]#service rpcbind status  
rpcbind (pid  1063) 正在運行...  
[root@unsion2 ~]#service nfs status  
rpc.svcgssd 已停  
rpc.mountd (pid 2193)正在運行...  
nfsd (pid 22092208 2207 2206 2205 2204 2203 2202) 正在運行...  
rpc.rquotad (pid2188) 正在運行...  
自動啓動:
[plain] view plain copy
[root@unsion2 ~]#chkconfig --list rpcbind  
[root@unsion2 ~]#chkconfig --list nfs  
4、檢測服務器的nfs狀態
[plain] view plain copy
[root@unsion2etc]# showmount -e  //查看自己共享的服務  
Export list forunsion2:  
/tmp/test192.168.56.202  
注意:在執行這個命令的時候如果出現錯誤,說明DNS不能解析當前的服務器,那就是hosts文件沒有配置。
5、客戶端掛載NFS中共享的目錄
首先是啓動nfs和rpcbind服務。
查詢服務端共享的文件目錄:
[plain] view plain copy
[root@unsion1tmp]# showmount -e 192.168.56.201  
Export list for192.168.56.201:  
/tmp/test192.168.56.202  
創建掛載目錄:
[plain] view plain copy
[root@unsion2 ~]# cd/tmp  
[root@unsion2 tmp]#mkdir hehe  
掛載服務端的共享目錄:
[plain] view plain copy
[root@unsion1tmp]# mount 192.168.56.201:/tmp/test/ /tmp/hehe/  
mount.nfs: accessdenied by server while mounting 192.168.56.201:/tmp/ test /  
看到此信息表示成功掛載。
查看掛載的狀態:
[plain] view plain copy
[root@unsion1tmp]# mount | grep nfs  
sunrpc on/var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)  
nfsd on/proc/fs/nfsd type nfsd (rw)  
192.168.56.201:/tmp/test/on /tmp/hehe type nfs (rw,vers=4,addr=192.168.56.201,clientaddr=192.168.56.202)  
6、測試共享
服務器創建文件:
[plain] view plain copy
[root@unsion2 /]#cd /tmp/test  
[root@unsion2test]# touch 123456  
客戶端查看文件:
[plain] view plain copy
[root@unsion1 /]#cd /tmp/hehe  
[root@unsion1hehe]# ll  
總用量 0  
-rw-r--r--. 1 rootroot 0 2月  25 15:37 123456  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章