1. 程式人生 > 實用技巧 >LINUX lvm擴容

LINUX lvm擴容

fdisk /dev/sda
p命令檢視分割槽
n命令建立一個新分割槽

建立後為sda3
使用l命令檢視所有分割槽型別,linux LVM的16進位制程式碼為8e
使用t命令改變分割槽型別,寫上8e(linux LVM)

lvm 進入lvm命令列管理

使用partprobe重新讀取分割槽表,或者重啟機器。
partprobe


建立一個新的pv(物理卷)
pvcreate /dev/sda3 
pvdisplay 
擴容vg  
vgextend centos /dev/sda3
vgdisplay

擴容lvm
lvextend -l  +15359  /dev/mapper/centos-root
上面數字從vgdisplay檢視空閒空間
成功後
擴容檔案系統:
xfs_growfs /dev/mapper/centos-root
檢視擴容後的磁碟容量:
df -h

  

伺服器是搭建在Esxi之上,使用MySQL時忽然報錯,資料連線不上,重啟服務也出現問題。使用命令journalctl -xe檢視一下日誌,發現啟動服務時報錯——

: mariadb.service failed to run 'start-pre' task: No space left on device
  • 1
  • 1
  • 1

查看了下磁碟容量,果真使用100%,都被MySQL目錄下的ibdata1檔案填滿了。怎麼瘦身下回再說,這次先給磁碟空間作下擴充把。

1. 檢視掛載點資訊

[root@localhost]# df -h

顯示如下:

檔案系統 容量 已用 可用 已用% 掛載點

/dev/mapper/centos-root 36G 36G 20K 100% /
……

可見可用只剩20K,使用已經100%。

2. 擴充套件VMWare硬碟空間
首先需要關閉作業系統,然後在設定中將磁碟調整到需要的容量。
如果選項是灰色的,說明虛擬機器有快照,將其快照刪除再操作。

3. 對新增加的硬碟進行分割槽、格式化
(1)檢視一下調整後的磁碟狀態

[root@localhost]# fdisk -l
顯示資訊:

  1. 磁碟 /dev/sda:214.7 GB, 214748364800 位元組,419430400 個扇區
  2. ……
  • 1
  • 2
  • 1
  • 2
  • 1
  • 2

說明增加了空間的磁碟是/dev/sda
(2)磁碟分割槽

[root@localhost]# fdisk /dev/sda

分別鍵入以下引數:

p       檢視已分割槽數量(我看到有兩個 /dev/sda1 和/dev/sda2)
n       新增加一個分割槽
p       分割槽型別,選擇主分割槽
        分割槽號選3(1和2已佔用,見上)
回車     預設選擇(起始扇區)
回車     預設選擇(結束扇區)
t       修改分割槽型別
       選分割槽3
8e     修改為LVM(8e就是LVM)
w       寫分割槽表,完成後退出fdisk命令

使用partprobe重新讀取分割槽表,或者重啟機器。

[root@localhost]# partprobe

格式化分割槽

[root@localhost]# mkfs.ext3 /dev/sda3

4. 新增新LVM到已有的LVM組,實現擴容
進入lvm管理

[root@localhost]# lvm

關於lvm的一些基礎知識可以參考這裡:http://blog.csdn.net/wuweilong/article/details/7565530
以下命令都是在lvm>
(1)初始化剛才的分割槽

pvcreate /dev/sda3

(2)檢視卷和卷組

vgdisplay

要記下”VG Name”,這裡為centos;再記下”Free PE/Size”的大小,例如這裡為21513

(3)將初始化過的分割槽加入到虛擬卷組

vgextend centos /dev/sda3

剛才記下的”VG Name”就在這裡使用。但是執行到這一步時報錯了:
Couldn't create temporary archive name.
Volume group "centos" metadata archive failed.
Internal error: Attempt to unlock unlocked VG #orphans.

查看了下,因為磁碟實在太小了,無法執行,刪除一些資料就行。
(4)擴充套件已有卷的容量

lvextend -l +21513 /dev/mapper/centos-root

lvextend指令用於線上擴充套件邏輯卷的空間大小,而不中斷應用程式對邏輯卷的訪問。其後有兩個選項

選項說明
-L 指定邏輯卷的大小,單位為“kKmMgGtT”位元組,也就是Size
-l 指定邏輯卷的大小,單位為PE數

其餘兩個引數:21513 是上邊通過vgdisplay檢視的free的大小,後邊的目錄引數/dev/mapper/centos-root可以通過df命令檢視
(5)檢視卷容量

pvdisplay

(6)退出

quit

5. 檔案系統擴容
以上只是卷擴容了,還要對檔案系統實現真正擴容
CentOS 7 下面 由於使用的是 XFS,所以要用

xfs_growfs /dev/mapper/centos-root

CentOS 6 下面 要用

resize2fs /dev/mapper/centos-root

6. 檢視新的磁碟空間

df -h

參考文件:

http://blog.csdn.net/rainbow702/article/details/50761380