A. CentOS7 擴展磁碟容量(虛擬機及物理機同理)
伺服器是搭建在ESXI之上,安裝LAMP環境到MySQL安裝時突然報錯,查看日誌發現文件寫入失敗磁碟已滿。
查看了下磁碟容量,果真已無多少剩餘空間了,這次選擇給磁碟空間作下擴充。
顯示如下:
可見可用只剩260K,使用已經100%。
首先需要關閉操作系統,然後在設置中將磁碟調整到需要的容量。
如果選項是灰色的,說明虛擬機有快照,將其快照刪除再操作。
VMware在虛擬機設置的硬碟裡面有「擴展」按鈕可以進行設置。
其他虛擬機也差不多的操作,可以網路查看。
物理機直接增加硬碟(接入新硬碟)即可。
顯示信息:
說明增加了空間的磁碟是/dev/sda
分別鍵入以下參數:
使用partprobe重讀分區表,或者reboot重啟機器。
格式化/dev/sda3分區
進入lvm管理
LVM基礎知識: http://blog.csdn.net/wuweilong/article/details/7565530
(1)初始化剛才的分區
(2)查看卷和卷組
要記下」VG Name」,例如這里是centos;再記下」Free PE/Size」的大小,例如這里是2048
(3)將初始化過的分區加入到VG卷組
剛才記下的」VG Name」就在這里使用。但是執行到這一步時報錯了:
網路了下,因為磁碟剩餘空間實在太小了,無法執行,刪除一些數據就可以了。 我刪除了/home目錄和~目錄下的文件。
(4)擴展已有卷的容量
lvextend指令用於在線擴展邏輯卷的空間大小,不中斷應用程序對邏輯卷的訪問。其後有兩個選項
其餘兩個參數:2048是上邊通過vgdisplay查看的Free PE/Size的大小,後邊的目錄參數/dev/mapper/centos-root可以通過df -h命令查看。
(5)查看卷容量並退出
上面的步驟只是卷擴容了,文件系統還沒實現真正擴容
CentOS 7: 由於使用的是 XFS
CentOS 6:
註:本文參考felcon的「Esxi中CentOS7 擴展磁碟容量」文章進行操作和記錄。
B. Centos7 給根目錄磁碟擴容
參考教程鏈接:https://www.cnblogs.com/Axianba/p/13049615.html
大坑預警:由於算數據所需軟體均安裝在/opt路徑下,實驗室伺服器根目錄爆滿,在我刪除了一些日誌文件後空間仍然少的可憐,因此給根目錄磁碟擴容是解決這個問題最好的辦法。正好伺服器安裝了新硬碟,我以為硬碟掛載好之後會更方便我處理這個問題,我就等著硬碟安裝後來擴容根目錄,但是發現掛載好的硬碟是無法格式化的,需要卸載後再格式化進行後續操作。
執行該教程的前兩步沒有任何問題,在格式化硬碟時報錯:
mkfs.xfs: cannot open /dev/sdc1: 設備或資源忙
Google之後使用命令: dmsetup ls
也沒有找到佔用該磁碟的進程,因此方法不適合解決我的問題。
解決辦法:
umount -l /dev/sdc 強行解除掛載的硬碟後,順利完成根目錄擴容。
思考:這個方法既然可以給根目錄擴容,是否也可以給/home目錄擴容?把這個軟體運行上就去試試。
C. centos系統在不關機情況下,擴展硬碟容量的方法
不關機的情況下擴展系統硬碟空間
1、選擇需要被擴展的虛擬機,然後右擊,選擇「編輯設置」,然後點擊「添加」:
2、選擇要添加的硬體「硬碟」,然後點擊「下一步」:
3、選擇默認,然後點擊「下一步」:
4、選擇要擴展的硬碟的容量,然後點擊「下一步」:
5、選擇默認,然後點擊「下一步」:
6、然後點擊「完成」:
7、新的硬碟正在添加,然後點擊「下一步」:
8、進入虛擬機系統,查看系統硬碟容量:
沒有載入時,重新掃描SCSI匯流排來添加設備
(1)確定主機匯流排號
ls /sys/class/scsi_host/
(2)重掃
echo "- - -">/sys/class/scsi_host/host0/scan
echo "- - -">/sys/class/scsi_host/host1/scan
echo "- - -">/sys/class/scsi_host/host2/scan
再次查看,可以看到磁碟已經新增上來了,盤符為/dev/sdb
fdisk -l
9、通過partprobe重載分區表,避免重啟系統:
partprobe /dev/sdb
注意:出現錯誤,則需要重啟系統。
10、pvcreate 命令用於將物理硬碟分區初始化為物理卷,以便LVM使用。
pvcreate /dev/sdb
11、pvdisplay 命令用於顯示物理卷的屬性。pvdisplay命令顯示的物理卷信息包括:物理卷名稱、所屬的卷組、物理卷大小、PE大小、總PE數、可用PE數、已分配的PE數和UUID。
pvdisplay
12 、vgextend centos /dev/sdb:擴展卷分組,"centos"是vgdisplay命令查到的卷分組名:
vgextend centos /dev/sdb (上圖中的VG name,可以看卷分組名)
13、lvextend命令用於在線擴展邏輯卷的空間大小,而不中斷應用程序對邏輯卷的訪問。使用lvextend命令動態在線擴展磁碟空間,整個空間擴展過程對於應用程序來說是完全透明的。
lvextend -L +100G /dev/mapper/centos-home
14、xfs_growfs:作為目標XFS文件系統來擴展,你可以指定掛載點、磁碟分區或者邏輯卷(在使用LVM時),使用數據塊數量來指定新的XFS文件系統的大小
xfs_growfs /dev/mapper/centos-home
15、查看系統硬碟空間:
df -h
以上步驟描述了centos系統在不關機情況下,擴展硬碟容量的方法。
D. centos7進行添加新硬碟對根目錄擴容
操作思路:先確定要擴展目錄的格式,df -hT,添加新硬碟,進行分區後,創建pv,然後將空間加入到vg中,然後vg中的空間加入到要擴展的目錄中,然後重新讀取空間。
命令:
插入新硬碟,不重啟識別如下命令:
fdisk -l #沒查看到相關的磁碟,進行如下操作:
識別磁碟後,進行磁碟格式化:
n #新建分區 p #主分區 1 #分區號 按回車 #起始扇區選擇默認
也是回車默認 #為了不浪費空間 p #查看創建出來的分區 w #保存
重新讓系統讀取分區,輸入兩次:
識別到如下磁碟。
···
root@Repository:/# lsblk
sdc 8:32 0 500G 0 disk
└─sdc1 8:33 0 500G 0 part
└─Repository--vg-root 252:0 0 1.1T 0 lvm /
sr0 11:0 1 1024M 0 rom
···
接下來創建pv、vg,在進行擴容。
查看vg名稱,並將空間加入到vg中,然後進行擴容。
將空間加入到vg中
擴容:
多出來的500G加入到擴展分區中:
重新讀取空間: