說明:申請的服務器均為客戶通過模板的方式分配,分配默認分為兩個磁盤sda和sdb,sda默認掛接到根目錄,sdb未進行掛接。在使用過程中,需要對sdb進行掛接。
linux的磁盤和windows是有所區別的,磁盤必須先分區,掛接到目錄后才可用
一、直接掛接到新目錄
對於磁盤,可以創建新目錄並直接掛接磁盤,對於后續系統生產的數據存儲到創建的目錄即可。
1、通過命令查看設備信息,這里只是列出幾個命令的簡單用法,對於命令其他參數可以查看幫助或者網上查詢。
查看分區和磁盤,命令:lsblk
查看存儲情況,命令:df –kh
查看磁盤情況,命令:fdisk –l
從上面信息可以看出,服務器一共掛接了兩個sd磁盤(sda和sdb),sda進行了兩個分區,分別為sda1和sda2,sda2掛接到/目錄(即根目錄)。sdb磁盤未進行分區以及目錄掛接,所以沒有真正使用。
擴展:
sd,hd表示硬盤, a表示第一塊盤,b表示第二塊,以此類推, 1表示硬盤上的第一個分區。
sd是Serial ATA Disk ,表示硬盤是scsi,SATA串行接口,本示例的磁盤均為sd類型。另外還有hd等,hd是 hard disk,表示硬盤是IDE(也叫ATA)並行接口,U盤也是屬於scsi,所以U盤也是sda
一塊硬盤里面最多有四個主分區(Windows和Linux中都是),如果想要更多的分區,一定是將其中一個分區作為擴展分區(拓展分區最多一個),然后在擴展分區的基礎上進行分區,稱為邏輯分區。 第一個邏輯分區的分區號一定是從5開始,比如說sda5,是第一塊SCSI硬盤上的第一個邏輯分區。
在邏輯上所有的目錄(包括目錄下的子目錄)都在最高級別的目錄“/”下,根(“/”)目錄是linux系統中所有目錄的起始點(頂點),根下面的目錄及目錄的子目錄是一個有層次的樹狀結構很像一顆倒掛着的一顆大樹,這和Windows系統按照硬盤分區(C:D:E:)分割的目錄結構是不同的(windows系統可以理解為多棵樹,每個分區就是一顆獨立的小樹)linux系統中的這些不同的目錄也是很特別的,不同的目錄可以分布在不同的硬盤分區以及不同的硬盤設備上。這是windows的系統難以做到的,windows系統的不同分區都是獨立存在的。
/usr:系統級的目錄,可以理解為C:/Windows/,/usr/lib理解為C:/Windows/System32。
/usr/local:用戶級的程序目錄,可以理解為C:/Progrem Files/。用戶自己編譯的軟件默認會安裝到這個目錄下。
/opt:用戶級的程序目錄,可以理解為D:/Software,opt有可選的意思,這里可以用於放置第三方大型軟件(或游戲),當你不需要時,直接rm -rf掉即可。在硬盤容量不夠時,也可將/opt單獨掛載到其他磁盤上使用。
2、磁盤分區,命令:fdisk /dev/sdb,對sdb進行分區。
輸入分別是:
n:新建一個分區;
p:建立主分區;
1:指建立第一個分區;
兩次回車:以整個磁盤大小創建分區;
當然也可以進行分區刪除等操作,具體參數見幫助。
3、分區格式化,命令:mkfs.ext4 /dev/sdb1
格式化新建立的sdb1分區並寫入文件系統。
4、掛在磁盤到指定目錄(這里掛接到新目錄)
mkdir /data
mount /dev/sdb1 /data
創建新的目錄/data,並將sdb1分區與/data目錄實現掛接。這樣就完成了磁盤掛接的工作,后續可以正常使用了。
5、設置開機自動掛載
以上只是臨時掛載,建議設置為開機自動掛載,否則需要每次重啟后進行手動掛載。
vim /etc/fstab
/dev/sdb1 /data ext4 defaults 0 0
修改后通過cat /etc/fstab命令進行確認。
如果允許的情況下,建議重啟服務器查看自動掛載是否生效。
這樣整個過程便完成了,下面是掛接之后通過命令查詢的相關信息,可以對掛載情況進行確認。
二、擴展現有目錄(未測試)
對於已經使用的系統,如果遇到某個目錄空間使用率較高,可以使用新磁盤擴展現有目錄。
如果你要用來掛載的目錄里面並不是空的,那么掛載了文件系統之后,原目錄下的東西就會暫時的消失。並不是被覆蓋掉,而是暫時的隱藏了起來,等到新分區被卸除之后,則原目錄原本的內容就會再次出來。如果要永久掛載已有目錄,可以在新硬盤創建文件系統后,先掛載到一個臨時目錄,然后把要擴展的目錄復制到這臨時目錄,然后刪除要擴展的目錄,再卸載臨時掛載點,重新掛載到要擴展的目錄上。
比如要擴充 /var目錄:
1.、在創建好文件系統后 新建臨時掛載點 /data
mkdir /data
2、將/dev/sdb1掛載到/data下
mount /dev/sdb1 /data
3、拷貝/var下的所有內容到新的硬盤
cp -pdr /var/* /data
或在/var 目錄下執行:find . -depth -print | cpio - pldvm /temp
刪除當前/var目錄下的內容rm -rf /var/*
4、重新掛載硬盤到/var目錄
umount /dev/sdb1
mount /dev/sdb1 /var
過程中若提示磁盤忙,使用fuser找出將正在使用磁盤的程序並結束掉;
fuser -m -v /var
fuser -m -v -i -k /var
5、刪除臨時目錄
rm -rf /data
6、設置開機自動掛載,以上只是臨時掛載,還需設置為開機自動掛載
vim /etc/fstab
/dev/sdb1 /var ext4 defaults 0 0
對於磁盤擴充補充:
前提要求:擴展的分區之后沒有其它分區並且有剩余空間可用。此方式建議謹慎使用。
操作步驟:
1)首先查看硬盤使用情況及文件系統類型:df -h
2)卸載數據盤:umount /dev/sdb1
3)刪除sdb上的分區並重新分區
fdisk /dev/sdb
輸入d,1表示刪除第一個分區
輸入n,其余默認即可,創建新分區,默認為使用磁盤上所有空間。
4)通知系統重讀分區表:partprobe /dev/sdb
5)重新掛載:mount /dev/sdb1 /data
lsblk可以看到sdb1為450G;df -TH /dev/sdb1看到大小仍為350G,因為前350G的扇區上之前是做過文件系統的,重新分區后新加進來的這100G的扇區上是沒有文件系統的,df命令看的是分區的使用情況。
6)根據文件系統類型擴展文件系統:
ext文件系統使用resize2fs /data命令,xfs文件系統使用xfs_growfs命令,都是將文件系統擴展至物理分區大小。也可以使用fsadm命令手動調整文件系統大小(這在縮減分區空間時比較有用)。
7)再次查看驗證分區大小,發現目錄已經擴容:df -TH /data/
可以通過鏈接的方式實現,分別掛載兩個盤到 /mnt/a_1
和/mnt/a_2
,然后把兩個目錄中的所有內容軟連接到/mnt/a
下
mkdir -p /mnt/a mkdir -p /mnt/a_1 mkdir -p /mnt/a_2 mount -t auto /dev/sdXX1 /mnt/a_1 mount -t auto /dev/sdXX2 /mnt/a_2 cd /mnt/a ln -s ../a_1/* ./ ln -s ../a_2/* ./
對於直接掛接的方式,設置較為簡單,只需要幾步即可完成操作,但是在后續空間動態擴展以及一個目錄掛接到多個磁盤分區的方式較為困難,我們可以通過LVM管理的方式來實現,請參考《CentOS7磁盤掛接 二(LVM邏輯卷管理)》
因為剛接觸linux不久,暫時只了解到以上的一些方法,后續會根據不斷的學習進行補充完善!如果文中有表述不對的地方,還望大家指正。
參考:
https://blog.csdn.net/u010247166/article/details/100170187