linux 扩展根目录
背景:
系統新增了一塊盤50G的磁盤/dev/sdb,需對根目錄進行擴容
[root@localhost ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 13M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 17G 4.6G 13G 27% / /dev/sda1 1014M 185M 830M 19% /boot tmpfs 378M 12K 378M 1% /run/user/42 tmpfs 378M 0 378M 0% /run/user/0概念介紹
LVM是LogicalVolumeManager(邏輯卷管理)的簡寫,他是Linux環境下對磁盤分區進行管理的一中機制,在實際環境中,隨著時間推移導致磁盤空間不夠用,必須掛載新磁盤進行擴容和數據遷移,這導致業務會終端,不符合實際要求,因此最好的方法是零停機擴容,可以在現有文件系統上跨越不同硬盤和分區進行擴容,Liunx提供的邏輯盤管理LVM機制就是一個完美的解決方案
關鍵詞:
PM(Physical Media):物理存儲設備:比如 /dev/sda、/dev/sdb、/dev/sdb 等
PV(Physical Volume):物理卷 :類似硬盤分區
VG(Volume Group):卷組 :不太明白,可以看成是由一個或者多個 PV(物理卷)的組合
?LV(Logical Volume):邏輯卷:類似于非 LVM 系統上的磁盤分區,LV 建立在 VG 上,可以在 LV 上建立文件系統
簡易結構如下
實現方法
如上圖所示,我們將硬盤sda分區后對每個分區創建PV123,然后將PV123加入到VG1中,此時此刻VG1相當于一個匯聚了很多個PV的大硬盤,然后我們再VG1上劃分LV,可以看成是再大硬盤上分區,但這個分區是動態的,當我們后續有新硬盤(例如上圖sdb)加入到服務器,我們對sdb進行分區并對分區創建PV,然后我們可以將PV4加入到VG1中,于是擴大了VG1的實際空間,這擴大的部分空間我們就可以動態的調整給VG1下的LV,達到擴展文件系統大小的目的,以下是具體步驟
1 給新磁盤創建分區
磁盤小于2T可使用MGR分區,超過2T的需要使用GPT模式,我這里僅做測試,以下命令將sdb轉換為gpt格式,然后創建了一個分區并占用所有空間
[root@centos131 ~]# parted -s /dev/sdb mklabel gpt [root@centos131 ~]# parted -s /dev/sdb mkpart logic 0% 100%2 創建物理卷(PV)
[root@centos131 ~]# pvcreate /dev/sdb1 WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: yWiping ext4 signature on /dev/sdb1.Physical volume "/dev/sdb1" successfully created. [root@centos131 ~]#查看PV
可以看見針對/dev/sdb1的pv已創建成功,且系統根目錄所屬PV是/etc/sda2,VG是centos
[root@centos131 ~]# pvdisplay--- Physical volume ---PV Name /dev/sda2VG Name centosPV Size <19.00 GiB / not usable 3.00 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 4863Free PE 0Allocated PE 4863PV UUID xowzcE-poPQ-mofa-zecu-9KPl-vkCu-ob4rC3"/dev/sdb1" is a new physical volume of "<50.00 GiB"--- NEW Physical volume ---PV Name /dev/sdb1VG Name PV Size <50.00 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID q3ikhJ-1hkf-8Tr6-lV5i-QQ8w-lC7L-dv5Jh93 擴容卷組(VG)
將新的PV(/dev/sdb1)添加到當前根目錄所屬VG(centos)中
[root@centos131 ~]# vgextend centos /dev/sdb1Volume group "centos" successfully extended查看:可以看到我們新增的PV(/dev/sdb1)的VG已被改成centos
[root@centos131 ~]# pvdisplay--- Physical volume ---PV Name /dev/sda2VG Name centosPV Size <19.00 GiB / not usable 3.00 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 4863Free PE 0Allocated PE 4863PV UUID xowzcE-poPQ-mofa-zecu-9KPl-vkCu-ob4rC3--- Physical volume ---PV Name /dev/sdb1VG Name centosPV Size <50.00 GiB / not usable 2.00 MiBAllocatable yes PE Size 4.00 MiBTotal PE 12799Free PE 12799Allocated PE 0PV UUID q3ikhJ-1hkf-8Tr6-lV5i-QQ8w-lC7L-dv5Jh94 擴展邏輯卷(LV)
查看當前LV:可以看出當前卷組VG(centos)中存在兩個邏輯卷LV(swap、root),其中swap作為虛擬內存使用,root是我們本次需要擴展的系統根目錄所在的邏輯卷
[root@centos131 ~]# lvdisplay--- Logical volume ---LV Path /dev/centos/swapLV Name swapVG Name centosLV UUID nqYaFO-NmDI-K1ii-Gsxi-q9wC-nPuW-2EaHTLLV Write Access read/writeLV Creation host, time localhost.localdomain, 2022-05-30 11:26:27 +0800LV Status available# open 2LV Size 2.00 GiBCurrent LE 512Segments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:1--- Logical volume ---LV Path /dev/centos/rootLV Name rootVG Name centosLV UUID BQ2EDi-tljG-2VhV-NGCd-nCk2-Jqh8-yJkaaHLV Write Access read/writeLV Creation host, time localhost.localdomain, 2022-05-30 11:26:27 +0800LV Status available# open 1LV Size <17.00 GiBCurrent LE 4351Segments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:05 擴展邏輯卷
由于前序操作已經將新的磁盤空間分區并劃分給了我們系統所在的卷組VG(centos),所以現在需要對該卷組的可用容量進行分配,以下命令將centos卷組的所有剩余空間分配給邏輯卷root
[root@centos131 ~]# lvextend -l+100%FREE /dev/centos/root Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to 66.99 GiB (17150 extents).Logical volume centos/root successfully resized. [root@centos131 ~]# xfs_growfs /dev/centos/root6 擴展文件系統
最后在對文件系統進行擴容即可完成
[root@centos131 ~]# xfs_growfs /dev/centos/root meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=1113856 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=4455424, imaxpct=25= sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=2560, version=2= sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 4455424 to 175616007 驗證
可以看見根目錄空間從之前的17G變成了67G
df -h 文件系統 容量 已用 可用 已用% 掛載點 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 13M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 67G 5.2G 62G 8% / /dev/sda1 1014M 185M 830M 19% /boot tmpfs 378M 0 378M 0% /run/user/1001 tmpfs 378M 12K 378M 1% /run/user/42 tmpfs 378M 0 378M 0% /run/user/0總結
以上是生活随笔為你收集整理的linux 扩展根目录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 主备机房介绍
- 下一篇: linux 其他常用命令