Linux給磁盤擴容(LVM方式)的方法實現(xiàn)
最近測試性能,在本地打數(shù)據(jù)時,發(fā)現(xiàn)磁盤空間不足,于是想手動給/掛載點添加空間。這里介紹通過LVM方式快速給磁盤擴容。
LVM:是一種技術,方便管理磁盤。如果不用LVM,那么就不好在之前的磁盤基礎上擴容,比如我一塊硬盤20G被寫滿了之后,我想將這塊硬盤擴容到40G,就無法操作。只能新開一個磁盤。對于MySQL這種數(shù)據(jù)保存在本地磁盤路徑/var/mysql/data這種就無法正確擴容。
- 有人會說我直接新插一個更大的硬盤,然后把數(shù)據(jù)從舊磁盤復制到新磁盤上,顯然這在數(shù)據(jù)量大的情況下是不合理的。會耗費大量的時間。
1 概念
PV:物理卷,同一磁盤可劃分為多個物理卷。
VG:卷組,一個到多個PV可組成一個卷組。
LV:邏輯卷,卷組可劃分為多個邏輯卷。
PE:Physical extent物理區(qū)域,硬盤可供指派給邏輯卷的最小單位(通常為 4MB)
掛載點:lv與掛載點是1:1的關系。

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 相關基礎命令
# 查看掛載點 df -h # 查看邏輯卷( logical volume) lvdisplay # 查看當前的卷組(volume group),輸出結果中的VG Size表示當前卷組總大小 vgdisplay # 查看當前的物理卷組(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

可以看到我們當前磁盤的基礎信息,以及掛載情況。
# 查詢掛載點情況 df -h

可以看到我/下可用容量只有50G,現(xiàn)在我需要給它擴容。
2. 查看所有存儲設備:fdisk -l |grep ‘/dev’
# 查看當前所有的存儲設備 # fdisk -l |grep '/dev' # 查看當前所有磁盤 fdisk -l |grep '/dev/vd'

手動給虛擬機或者物理機新增一塊磁盤,再執(zhí)行相同命令:
# 查看當前所有磁盤 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,因為設計較早,對于現(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
我們要給/目錄擴容,所以需要知道/目錄對應的LVPath是什么
# 查看/掛載點對應的信息 df -h

# 查看LV虛擬卷信息,可以知道/對應的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,因為設計較早,對于現(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,如果你卸載了其中一個磁盤導致LV失效,部分數(shù)據(jù)就可能丟失。類比:ES中的Shard
2.3 總結
新增磁盤
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 查看掛載點大小變化,觀察是否擴容成功
到此這篇關于Linux給磁盤擴容(LVM方式)的方法實現(xiàn)的文章就介紹到這了,更多相關Linux 磁盤擴容內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
淺談Flink容錯機制之作業(yè)執(zhí)行和守護進程
Flink容錯機制主要有作業(yè)執(zhí)行的容錯以及守護進程的容錯兩方面,前者包括Flink runtime的ExecutionGraph和Execution的容錯,后者則包括JobManager和TaskManager的容錯2021-06-06
linux 上在指定時間段內(nèi)每隔多少分鐘自動執(zhí)行任務計劃crontab
這篇文章主要介紹了linux 上在指定時間段內(nèi)每隔多少分鐘自動執(zhí)行任務計劃crontab,需要的朋友可以參考下2019-11-11
Apache之AllowOverride參數(shù)使用說明
通常利用Apache的rewrite模塊對 URL 進行重寫的時候, rewrite規(guī)則會寫在 .htaccess 文件里。但要使 apache 能夠正常的讀取.htaccess 文件的內(nèi)容,就必須對.htaccess 所在目錄進行配置。2011-01-01

