Linux給磁盤擴容(LVM方式)的方法實現(xiàn)
最近測試性能,在本地打數(shù)據(jù)時,發(fā)現(xiàn)磁盤空間不足,于是想手動給/掛載點添加空間。這里介紹通過LVM方式快速給磁盤擴容。
LVM:是一種技術(shù),方便管理磁盤。如果不用LVM,那么就不好在之前的磁盤基礎(chǔ)上擴容,比如我一塊硬盤20G被寫滿了之后,我想將這塊硬盤擴容到40G,就無法操作。只能新開一個磁盤。對于MySQL這種數(shù)據(jù)保存在本地磁盤路徑/var/mysql/data這種就無法正確擴容。
- 有人會說我直接新插一個更大的硬盤,然后把數(shù)據(jù)從舊磁盤復(fù)制到新磁盤上,顯然這在數(shù)據(jù)量大的情況下是不合理的。會耗費大量的時間。
1 概念
PV:物理卷,同一磁盤可劃分為多個物理卷。
VG:卷組,一個到多個PV可組成一個卷組。
LV:邏輯卷,卷組可劃分為多個邏輯卷。
PE:Physical extent物理區(qū)域,硬盤可供指派給邏輯卷的最小單位(通常為 4MB)
掛載點:lv與掛載點是1:1的關(guān)系。
1.1 物理卷 Physical Volume (PV)
可以在上面建立卷組的媒介,可以是硬盤分區(qū),也可以是硬盤本身或者回環(huán)文件(loopback file)。物理卷包括一個特殊的 header,其余部分被切割為一塊塊物理區(qū)域(physical extents)
1.2 卷組 Volume group (VG): 將一組物理卷收集為一個管理單元
1.3 邏輯卷 Logical volume (LV): 虛擬分區(qū),由物理區(qū)域(physical extents)組成
1.4 物理區(qū)域 Physical extent (PE): 硬盤可供指派給邏輯卷的最小單位(通常為 4MB)
2 實戰(zhàn)
我本地/
目錄下有50G空間,現(xiàn)在我想擴容到100G。
2.1 相關(guān)基礎(chǔ)命令
# 查看掛載點 df -h # 查看邏輯卷( logical volume) lvdisplay # 查看當(dāng)前的卷組(volume group),輸出結(jié)果中的VG Size表示當(dāng)前卷組總大小 vgdisplay # 查看當(dāng)前的物理卷組(physical volume) pvdisplay # 執(zhí)行fdisk /dev/vdb給vdb磁盤創(chuàng)建分區(qū) fdisk /dev/vdb # 格式化分區(qū) mkfs -t xfs /dev/vdb1 # 一般用于centos7及以上 # mkfs -t ext4 /dev/vdb1 # 一般用于centos6 # 創(chuàng)建pv,方便將pv交給vg管理 pvcreate /dev/vdb1 # 給centos這個VG擴容 vgextend centos /dev/vdb1 # 給LV擴容 lvextend -l +100%FREE /dev/centos/root # 刷新分區(qū) # resize2fs /dev/centos/root # 適用于centos6 xfs_growfs /dev/centos/root # centos7及以后
2.2 開始給LVM擴容
1. 查看fdisk:fdisk -l
fdisk -l
可以看到我們當(dāng)前磁盤的基礎(chǔ)信息,以及掛載情況。
# 查詢掛載點情況 df -h
可以看到我/
下可用容量只有50G,現(xiàn)在我需要給它擴容。
2. 查看所有存儲設(shè)備:fdisk -l |grep ‘/dev’
# 查看當(dāng)前所有的存儲設(shè)備 # fdisk -l |grep '/dev' # 查看當(dāng)前所有磁盤 fdisk -l |grep '/dev/vd'
手動給虛擬機或者物理機新增一塊磁盤,再執(zhí)行相同命令:
# 查看當(dāng)前所有磁盤 fdisk -l |grep '/dev/vd'
3. 給磁盤創(chuàng)建分區(qū):fdisk /dev/vdb
# 執(zhí)行fdisk /dev/vdb給vdb磁盤創(chuàng)建分區(qū) fdisk /dev/vdb ## n:新建分區(qū) ## l: 選擇邏輯分區(qū),如果沒有,則首先創(chuàng)建主分區(qū)(p),然后再添加邏輯分區(qū)(硬盤最多四個分區(qū) P-P-P-P 或 P-P-P-E)
# 查看是否分區(qū)成功 fdisk -l | grep 'dev/vd'
4. 格式化磁盤:mkfs -t xfs /dev/vdb1
文件系統(tǒng)類型centos6文件系統(tǒng)是ext4,因為設(shè)計較早,對于現(xiàn)今動輒上T的海量數(shù)據(jù)處理,性能較低。 centos7文件系統(tǒng)是xfs,適用于海量數(shù)據(jù)。
# 格式化分區(qū) mkfs -t xfs /dev/vdb1 # 一般用于centos7及以上 # mkfs -t ext4 /dev/vdb1 # 一般用于centos6
5. 創(chuàng)建pv:pvcreate /dev/vdb1
# 創(chuàng)建pv,方便將pv交給vg管理 pvcreate /dev/vdb1 # pvscan查看卷組,觀察是否創(chuàng)建成功 pvscan | grep /dev/vdb1
6. 擴容vg:vgextend centos /dev/vdb1
我現(xiàn)在要給/擴容,所以要知道/屬于哪個vg管理
# 查看lv lvdisplay
所以我現(xiàn)在要給centos這個VG擴展容量
# 將/dev/vdb1這個pv交給centos這個vg管理 vgextend centos /dev/vdb1 # 查看vg狀態(tài) vgdisplay
7.擴容lv:lvextend -l +100%FREE /dev/centos/root
我們要給/目錄擴容,所以需要知道/目錄對應(yīng)的LVPath是什么
# 查看/掛載點對應(yīng)的信息 df -h
# 查看LV虛擬卷信息,可以知道/對應(yīng)的LVPath為/dev/centos/root lvdisplay
下面就是給LV擴容:
# 按固定大小追加(追加10G給/dev/centos/root這個LVPath) lvextend -L +10G /dev/centos/root # 按百分比追加 lvextend -l +100%FREE /dev/centos/root
以百分比追加為例,我將vg中剩下的所有容量全部分配給/
lvextend -l +100%FREE /dev/centos/root
# 查看LV是否擴容成功 lvdisplay
LV Size成功由50G擴容到了100G
8. 刷新分區(qū):xfs_growfs /dev/centos/root
df 命令參看硬盤信息-T選項, 查看文件系統(tǒng)類型centos6文件系統(tǒng)是ext4,因為設(shè)計較早,對于現(xiàn)今動輒上T的海量數(shù)據(jù)處理,性能較低。 centos7文件系統(tǒng)是xfs,適用于海量數(shù)據(jù)。
# xfs格式的硬盤使用xfs_growfs # ext4用resize2fs命令, df -T # 查看文件系統(tǒng)類型(一般centos6是ext4,centos7及以后是xfs) # resize2fs /dev/centos/root # 適用于centos6 xfs_growfs /dev/centos/root # centos7及以后
9. 驗證df -h
擴容前:
擴容后:
注意: 不要卸載擴容的磁盤,可能出現(xiàn)丟失數(shù)據(jù)或是系統(tǒng)無法啟動
因為多個LV對外提供的是一個VG,如果你卸載了其中一個磁盤導(dǎo)致LV失效,部分?jǐn)?shù)據(jù)就可能丟失。類比:ES中的Shard
2.3 總結(jié)
新增磁盤
fdisk給磁盤創(chuàng)建分區(qū),fdisk /dev/vdb
mkfs格式化磁盤,mkfs -t xfs /dev/vdb1
pvcreate創(chuàng)建pv,pvcreate /dev/vdb1
vgextend擴容vg,vgextend centos /dev/vdb1,給vg擴容(將/dev/vdb1交給centos這個vg管理)
lvextend擴容lv,lvextend -l +100%FREE /dev/centos/root(將vg剩余的容量全部分配給/dev/centos/root這個lv)
xfs_growfs刷新分區(qū),# resize2fs /dev/centos/root # 適用于centos6
xfs_growfs /dev/centos/root # centos7及以后df -h 查看掛載點大小變化,觀察是否擴容成功
到此這篇關(guān)于Linux給磁盤擴容(LVM方式)的方法實現(xiàn)的文章就介紹到這了,更多相關(guān)Linux 磁盤擴容內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
新版VPS主機管理面板WDCP安裝及使用體驗-國產(chǎn)簡單易用型VPS面板
這篇文章主要介紹了新版VPS主機管理面板WDCP安裝及使用體驗-國產(chǎn)簡單易用型VPS面板,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07關(guān)于Linux命令行下的數(shù)學(xué)運算示例詳解
在Linux中直接使用數(shù)學(xué)運算符進行數(shù)學(xué)運算往往得不到我們想要的計算結(jié)果。要在Shell中進行數(shù)學(xué)運算,我們需要借助點小手段。下面這篇文章主要給大家介紹了關(guān)于Linux命令行下的數(shù)學(xué)運算的相關(guān)資料,需要的朋友可以參考下2018-05-05Linux云服務(wù)器搭建SFTP服務(wù)器圖片服務(wù)器的操作
這篇文章主要介紹了Linux云服務(wù)器搭建SFTP服務(wù)器圖片服務(wù)器的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07Linux系統(tǒng)中安裝gcc和kernel-devel的方法
下面小編就為大家?guī)硪黄狶inux系統(tǒng)中安裝gcc和kernel-devel的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12Win8.1 + CentOS7 雙系統(tǒng) U盤安裝(超詳細教程)
這篇文章主要介紹了Win8.1 + CentOS7 雙系統(tǒng) U盤安裝(超詳細教程),非常具有實用價值,需要的朋友可以參考下。2017-01-01