Linux 邏輯卷管理

練習

創建物理卷(pv->vg->lv)
  • 物理卷(PV)就像把一塊塊獨立的硬盤,標記成 "可用于搭建 LVM 的積木",讓系統知道這些硬盤可以被 LVM 管理。

#把sdb這塊硬盤標記為物理卷(相當于給這塊積木蓋章,說明 "這是 LVM 專用積木")[root@server ~ 10:59:59]# pvcreate /dev/sdbPhysical volume "/dev/sdb" successfully created.#同時把sdc和sdd兩塊硬盤也標記為物理卷(一次性處理多個積木)[root@server ~ 11:18:01]# pvcreate /dev/sd{c,d}Physical volume "/dev/sdc" successfully created.Physical volume "/dev/sdd" successfully created.#查看所有物理卷的狀態(pvs是 "物理卷列表" 的縮寫)[root@server ~ 11:18:21]# pvsPV ? ? ? ? VG ? ? Fmt  Attr PSize  PFree /dev/sda2  centos lvm2 a-- ?52.00g ?4.00m/dev/sdb ? ? ? ?  lvm2 --- ?20.00g 20.00g ?#20G空閑還是未使用的/dev/sdc ? ? ? ?  lvm2 --- ?20.00g 20.00g/dev/sdd ? ? ? ?  lvm2 --- ?20.00g 20.00g#查看sdb這塊物理卷的詳細信息(比如大小、是否被使用等),確認它是 20G 的新卷[root@server ~ 11:18:31]# pvdisplay /dev/sdb"/dev/sdb" is a new physical volume of "20.00 GiB"--- NEW Physical volume ---PV Name ? ? ? ? ? ? ? /dev/sdbVG Name ? ? ? ? ? ? ? PV Size ? ? ? ? ? ? ? 20.00 GiBAllocatable ? ? ? ? ? NOPE Size ? ? ? ? ? ? ? 0 ? Total PE ? ? ? ? ? ? ?0Free PE ? ? ? ? ? ? ? 0Allocated PE ? ? ? ? ?0PV UUID ? ? ? ? ? ? ? fSUdiC-O7r0-t3jf-Kxc5-aEpE-0Lbk-RA1weH?
創建卷組
  • 卷組(VG)就像一個 "收納盒",把多個物理卷(積木)裝進去,統一管理。之后創建的邏輯卷會從這個盒子里取空間

#創建一個叫webapp的卷組(收納盒),把sdb這塊物理卷(積木)放進去[root@server ~ 11:18:39]# vgcreate webapp /dev/sdbVolume group "webapp" successfully created#再創建一個叫dbapp的卷組,把sdc和sdd兩塊物理卷放進去(一個盒子可以裝多塊積木)[root@server ~ 11:19:45]# vgcreate dbapp /dev/sd{c,d}Volume group "dbapp" successfully created#再次查看物理卷,發現sdb屬于webapp卷組,sdc和sdd屬于dbapp卷組(積木已經放進對應盒子了)[root@server ~ 11:20:06]# pvsPV ? ? ? ? VG ? ? Fmt  Attr PSize ? PFree ?/dev/sda2  centos lvm2 a-- ? 52.00g ? 4.00m/dev/sdb ? webapp lvm2 a--  <20.00g <20.00g/dev/sdc ? dbapp  lvm2 a--  <20.00g <20.00g/dev/sdd ? dbapp  lvm2 a--  <20.00g <20.00g#查看所有卷組的狀態(vgs是 "卷組列表" 的縮寫)。#結果顯示:dbapp卷組有 2 塊物理卷(#PV=2),總空間約 40G(20G+20G),目前全是空的(VFree=39.99g);webapp卷組有 1 塊物理卷,總空間約 20G[root@server ~ 11:20:10]# vgsVG ? ? #PV #LV #SN Attr ? VSize ? VFree ?centos ? 1 ? 2 ? 0 wz--n- ?52.00g ? 4.00mdbapp ? ?2 ? 0 ? 0 wz--n- ?39.99g ?39.99gwebapp ? 1 ? 0 ? 0 wz--n- <20.00g <20.00g#查看dbapp卷組的詳細信息,確認它的總空間是 40G,且完全空閑(所有積木都沒被用)[root@server ~ 11:20:26]# vgdisplay dbapp--- Volume group ---VG Name ? ? ? ? ? ? ? dbappSystem ID ? ? ? ? ? ? Format ? ? ? ? ? ? ?  lvm2Metadata Areas ? ? ? ?2Metadata Sequence No ?1VG Access ? ? ? ? ? ? read/writeVG Status ? ? ? ? ? ? resizable......VG Size ? ? ? ? ? ? ? 39.99 GiBPE Size ? ? ? ? ? ? ? 4.00 MiBTotal PE ? ? ? ? ? ? ?10238Alloc PE / Size ? ? ? 0 / 0 ? Free  PE / Size ? ? ? 10238 / 39.99 GiBVG UUID ? ? ? ? ? ? ? kUsUui-4yZ8-SqKL-6xIN-Bdfq-sgWh-e9Z1hR
創建邏輯卷
  • 邏輯卷(LV)就像從卷組(收納盒)里切割出的一塊 "虛擬硬盤",可以直接用它來存數據。大小可以靈活調整,不受物理硬盤限制

#從webapp卷組(收納盒)里切割出一塊 5G 的空間,取名webapp01(邏輯卷)。#-n:指定邏輯卷名字;-L 5G:指定大小為 5G[root@server ~ 11:20:37]# lvcreate -n webapp01 -L 5G webappLogical volume "webapp01" created.#從dbapp卷組里切割出 25G 的空間,取名data01(dbapp總共有 40G,足夠分 25G)[root@server ~ 11:21:40]# lvcreate -n data01 -L 25G dbappLogical volume "data01" created.#查看所有邏輯卷(lvs是 "邏輯卷列表" 的縮寫),確認webapp01(5G)和data01(25G)已創建[root@server ~ 11:21:50]# lvsLV ? ? ? VG ? ? Attr ? ? ? LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot ? ? centos -wi-ao---- 50.00g ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?swap ? ? centos -wi-ao---- ?2.00g ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?data01 ? dbapp ?-wi-a----- 25.00g ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?webapp01 webapp -wi-a----- ?5.00g ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
#邏輯卷設備名由如下三種格式:- /dev/vname/lvame- /dev/mapper/vname-lvame- /dev/dm-N??#邏輯卷的訪問路徑有多種方式,比如/dev/dbapp/data01或/dev/mapper/dbapp-data01,其實都是指向同一個邏輯卷(相當于一個文件有多個快捷方式)?[root@server ~ 11:21:56]#  ls -l /dev/dbapp/data01 /dev/mapper/dbapp-data01lrwxrwxrwx 1 root root 7 8月 ? 4 11:21 /dev/dbapp/data01 -> ../dm-3lrwxrwxrwx 1 root root 7 8月 ? 4 11:21 /dev/mapper/dbapp-data01 -> ../dm-3?
# 查看data01邏輯卷的詳細信息,確認它屬于dbapp卷組,大小 25G[root@server ~ 11:22:19]# lvdisplay /dev/dbapp/data01--- Logical volume ---LV Path ? ? ? ? ? ? ?  /dev/dbapp/data01LV Name ? ? ? ? ? ? ?  data01VG Name ? ? ? ? ? ? ?  dbappLV UUID ? ? ? ? ? ? ?  QKSeZN-4S6s-AJyx-NNm1-l29s-WCf6-tkCKnlLV Write Access ? ? ?  read/writeLV Creation host, time server.lyk.cloud, 2025-08-04 11:21:50 +0800LV Status ? ? ? ? ? ?  available# open ? ? ? ? ? ? ? ? 0LV Size ? ? ? ? ? ? ? ?25.00 GiB......?# 再次查看物理卷,發現webapp卷組的sdb用了 5G(因為webapp01是 5G);dbapp卷組的sdc(20G)全用完了,sdd用了 5G(因為data01要 25G,sdc的 20G 不夠,就從sdd再取 5G)[root@server ~ 11:23:20]# pvsPV ? ? ? ? VG ? ? Fmt  Attr PSize ? PFree ?/dev/sda2  centos lvm2 a-- ? 52.00g ? 4.00m/dev/sdb ? webapp lvm2 a--  <20.00g <15.00g/dev/sdc ? dbapp  lvm2 a--  <20.00g ? ? ?0 /dev/sdd ? dbapp  lvm2 a--  <20.00g ?14.99g?# 用lsblk查看硬盤分區關系,清晰看到data01邏輯卷橫跨了sdc和sdd兩塊物理硬盤(這就是 LVM 的靈活之處:邏輯卷可以跨多個硬盤)[root@server ~ 11:23:58]# lsblk /dev/sd{b..d}NAME ? ? ? ? ? ?  MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsdb ? ? ? ? ? ? ? ? 8:16 ? 0  20G ?0 disk └─webapp-webapp01 253:2 ? ?0 ? 5G ?0 lvm ?sdc ? ? ? ? ? ? ? ? 8:32 ? 0  20G ?0 disk └─dbapp-data01 ? ?253:3 ? ?0  25G ?0 lvm ?sdd ? ? ? ? ? ? ? ? 8:48 ? 0  20G ?0 disk └─dbapp-data01 ? ?253:3 ? ?0  25G ?0 lvm ??

創建文件系統

  • 邏輯卷創建后,需要格式化(創建文件系統)才能用,就像新買的 U 盤要格式化一樣

#給webapp01邏輯卷格式化,用xfs文件系統(相當于給這塊 25G 的虛擬硬盤格式化,讓系統能識別文件)[root@server ~ 11:24:24]# mkfs.xfs /dev/webapp/webapp01meta-data=/dev/webapp/webapp01 ? isize=512 ? ?agcount=4, agsize=327680 blks= ? ? ? ? ? ? ? ? ? ? ? sectsz=512 ? attr=2, projid32bit=1= ? ? ? ? ? ? ? ? ? ? ? crc=1 ? ? ? ?finobt=0, sparse=0data ? ? = ? ? ? ? ? ? ? ? ? ? ? bsize=4096 ? blocks=1310720, imaxpct=25= ? ? ? ? ? ? ? ? ? ? ? sunit=0 ? ? ?swidth=0 blksnaming ? =version 2 ? ? ? ? ? ? ?bsize=4096 ? ascii-ci=0 ftype=1log ? ? ?=internal log ? ? ? ? ? bsize=4096 ? blocks=2560, version=2= ? ? ? ? ? ? ? ? ? ? ? sectsz=512 ? sunit=0 blks, lazy-count=1realtime =none ? ? ? ? ? ? ? ? ? extsz=4096 ? blocks=0, rtextents=0#把webapp01邏輯卷掛載到/var/www/html文件夾(網站目錄),以后往這個文件夾存東西,實際就是存在webapp01邏輯卷里。[root@server ~ 11:24:44]# mount /dev/webapp/webapp01 /var/www/html?#/var/www/html 是 Linux 里默認的網頁存放目錄(就像網站的 “倉庫”),index.html 是網站的首頁文件。這條命令相當于在首頁文件里寫了 “hello” 這行字[root@server ~ 11:31:47]# echo hello >> /var/www/html/index.html?#安裝 httpd 軟件(Apache 服務器,相當于電腦上的 “網頁發布工具”,能讓其他設備通過網絡訪問你的網頁)[root@server ~ 11:32:38]# yum install -y httpd[root@server ~ 11:32:51]# systemctl start httpd?#curl 是個查看網頁內容的工具,http://localhost 指的是 “本機的網頁地址”。執行后輸出 “hello”,說明[root@server ~ 11:32:54]# curl http://localhosthello?

清理(lv->vg->pg)

#我們把webapp01這個邏輯卷(虛擬硬盤)掛載到了/var/www/html(網頁目錄),現在先取消這個關聯,就像拔 U 盤前先 “安全彈出”,避免數據出問題[root@server ~ 11:41:33]# umount /dev/webapp/webapp01?#相當于 “把從收納盒里拼好的虛擬硬盤拆成零散積木”。#這里要刪除兩個邏輯卷:webapp01(5G)和data01(25G)。系統會確認 “真的要刪嗎?”,輸入y(是)后,這兩個 “虛擬硬盤” 就被拆掉了,卷組里的空間變回空閑狀態[root@server ~ 11:41:55]# lvremove /dev/webapp/webapp01 /dev/dbapp/data01Do you really want to remove active logical volume webapp/webapp01? [y/n]: yLogical volume "webapp01" successfully removedDo you really want to remove active logical volume dbapp/data01? [y/n]: yLogical volume "data01" successfully removed?#相當于 “把裝積木的收納盒扔掉”。#之前創建的webapp和dbapp兩個卷組(收納盒),現在里面的邏輯卷已經刪掉了,就可以把空盒子直接移除,徹底清理[root@server ~ 11:42:54]# vgremove webapp dbappVolume group "webapp" successfully removedVolume group "dbapp" successfully removed?#相當于 “擦掉積木上的 LVM 標記,變回普通積木”。#最后把sdb、sdc、sdd這三塊物理卷(原始硬盤)上的 LVM 標識清除,它們就變回了普通硬盤,以后可以重新用來創建新的 LVM,或者做其他用途(比如分區、創建 RAID 等)[root@server ~ 11:43:01]#  pvremove /dev/sd{b..d}Labels on physical volume "/dev/sdb" successfully wiped.Labels on physical volume "/dev/sdc" successfully wiped.Labels on physical volume "/dev/sdd" successfully wiped.??#整個過程就是 “拆除” 的逆向操作:先卸載使用中的設備,再刪除邏輯卷(虛擬硬盤),接著刪除卷組(收納盒),最后清除物理卷標記(恢復原始硬盤),讓所有資源回到初始狀態,方便下次重新規劃使用

擴展卷組和縮減卷組

  • 首先得有個 “積木盒”(卷組),里面放 “積木塊”(物理磁盤),再從盒子里拿出一塊 “橡皮泥”(邏輯卷)隨便捏

環境準備

# 創建卷組(積木盒)叫webapp,放進第一塊積木/dev/sdb[root@server ~ 13:27:12]# vgcreate webapp /dev/sdbPhysical volume "/dev/sdb" successfully created.Volume group "webapp" successfully created# 從盒子里揪一塊10G的橡皮泥(邏輯卷),叫webapp01[root@server ~ 13:36:11]# lvcreate -n webapp01 -L 10G webappWARNING: xfs signature detected on /dev/webapp/webapp01 at offset 0. Wipe it? [y/n]: yWiping xfs signature on /dev/webapp/webapp01.Logical volume "webapp01" created.
  • 這里vgcreate就像給一堆磁盤起個集體名字,lvcreate就是從這堆磁盤里劃出一塊可用空間

擴展卷組

  • 如果原來的積木不夠用了,就往盒子里加新積木(新磁盤)

# 給webapp盒子加兩塊新積木/dev/sdc和/dev/sdd
[root@server ~ 13:37:11]# vgextend webapp /dev/sd{c,d}Physical volume "/dev/sdc" successfully created.Physical volume "/dev/sdd" successfully created.Volume group "webapp" successfully extended#執行后用vgs查看:webapp卷組從 1 塊積木變成 3 塊,總容量變大了(VSize從 20G 變成約 60G)
[root@server ~ 13:39:00]# vgsVG     #PV #LV #SN Attr   VSize   VFree  centos   1   2   0 wz--n-  52.00g   4.00mwebapp   3   1   0 wz--n- <59.99g <49.99g#pvs命令能看到每塊積木(物理卷)的使用情況,比如/dev/sdb用了 10G,還剩 10G
[root@server ~ 13:39:47]# pvsPV         VG     Fmt  Attr PSize   PFree  /dev/sda2  centos lvm2 a--   52.00g   4.00m/dev/sdb   webapp lvm2 a--  <20.00g <10.00g/dev/sdc   webapp lvm2 a--  <20.00g <20.00g/dev/sdd   webapp lvm2 a--  <20.00g <20.00g

縮減卷組

  • 想拿走一塊積木,得先把上面的 “零件”(數據)移到其他積木上,不然會散架

[root@server ~ 13:39:47]# pvsPV         VG     Fmt  Attr PSize   PFree  /dev/sda2  centos lvm2 a--   52.00g   4.00m/dev/sdb   webapp lvm2 a--  <20.00g <10.00g/dev/sdc   webapp lvm2 a--  <20.00g <20.00g/dev/sdd   webapp lvm2 a--  <20.00g <20.00g# 直接拿/dev/sdb會報錯(上面有數據)  
# 將物理卷/dev/sdb從卷組webapp中剔除,則會報錯
[root@server ~ 13:40:24]# vgreduce webapp /dev/sdbPhysical volume "/dev/sdb" still in use# 先把/dev/sdb的數據搬到其他積木上
# 解決方法:將物理卷/dev/sdb中數據移動到卷組中其他物理卷  
[root@server ~ 13:41:41]# pvmove /dev/sdb/dev/sdb: Moved: 0.31%/dev/sdb: Moved: 100.00%   pvmove沒選擇目標,默認拿本組下一個的容量
# 現在可以安全拿走了(雖然命令里沒寫,但pvmove后/dev/sdb已空,默認從卷組移除)[root@server ~ 13:43:50]# pvsPV         VG     Fmt  Attr PSize   PFree  /dev/sda2  centos lvm2 a--   52.00g   4.00m/dev/sdb          lvm2 ---   20.00g  20.00g/dev/sdc   webapp lvm2 a--  <20.00g <10.00g/dev/sdd   webapp lvm2 a--  <20.00g <20.00g

擴展和縮減邏輯卷

  • 邏輯卷就像橡皮泥,能直接變大或變小(前提是卷組有空間)

擴展邏輯卷
# 把webapp01從10G捏到12G(+2G)
[root@server ~ 13:43:55]# lvextend -L +2G /dev/webapp/webapp01 Size of logical volume webapp/webapp01 changed from 10.00 GiB (2560 extents) to 12.00 GiB (3072 extents).Logical volume webapp/webapp01 successfully resized.
[root@server ~ 13:47:37]# lvs /dev/webapp/webapp01LV       VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertwebapp01 webapp -wi-a----- 12.00g   
縮減邏輯卷
# 再捏回10G(-2G)
[root@server ~ 13:47:44]# lvreduce -L -2G /dev/webapp/webapp01WARNING: Reducing active logical volume to 10.00 GiB.THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce webapp/webapp01? [y/n]: ySize of logical volume webapp/webapp01 changed from 12.00 GiB (3072 extents) to 10.00 GiB (2560 extents).Logical volume webapp/webapp01 successfully resized.
[root@server ~ 13:48:08]# lvs /dev/webapp/webapp01 LV       VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertwebapp01 webapp -wi-a----- 10.00g                                                    
指定邏輯卷大小lvresize
# 直接指定大小(比如捏到15G)
[root@server ~ 13:50:49]# lvresize -L 15G /dev/webapp/webapp01Size of logical volume webapp/webapp01 changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).Logical volume webapp/webapp01 successfully resized.
[root@server ~ 13:51:41]# lvs /dev/webapp/webapp01 LV       VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertwebapp01 webapp -wi-a----- 15.00g   

擴展和縮減文件系統

  • 邏輯卷變大后,外面的 “袋子”(文件系統)也要跟著放大,不然裝不下東西

擴展 XFS 文件系統
  • XFS 文件系統(只能放大,不能縮小)

[root@server ~ 13:51:46]# mkfs.xfs /dev/webapp/webapp01 
[root@server ~ 13:58:06]# mkdir /var/www/html
[root@server ~ 13:58:15]# mount /dev/webapp/webapp01 /var/www/html
[root@server ~ 13:58:40]# cp /etc/host* /var/www/html
[root@server ~ 13:59:01]# ls /var/www/html
host.conf  hostname  hosts  hosts.allow  hosts.deny
# 第一步:擴展邏輯卷
[root@server ~ 13:59:08]# lvextend -L 15G /dev/webapp/webapp01 New size (3840 extents) matches existing size (3840 extents).
[root@server ~ 14:00:28]# lvs /dev/webapp/webapp01 LV       VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertwebapp01 webapp -wi-ao---- 15.00g                                                    
# 第二步:擴展文件系統# 同步文件系統大小(掛載點路徑)
[root@server ~ 14:00:40]# xfs_growfs /var/www/html
......
realtime =none                   extsz=4096   blocks=0, rtextents=0[root@server ~ 14:01:04]# df -h /var/www/html
文件系統                     容量  已用  可用 已用% 掛載點
/dev/mapper/webapp-webapp01   15G   33M   15G    1% /var/www/html[root@server ~ 14:01:15]# ls /var/www/html
host.conf  hostname  hosts  hosts.allow  hosts.deny# 先把邏輯卷放大到20G(-r參數會自動同步文件系統)
# 塊設備和文件系統一并擴展***r***一定要在L前面,或者寫成 -r -L
[root@server ~ 14:01:55]# lvextend -rL 20G /dev/webapp/webapp01[root@server ~ 14:02:38]# lvs /dev/webapp/webapp01 LV       VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertwebapp01 webapp -wi-ao---- 20.00g                                                    
[root@server ~ 14:03:33]# df -h /var/www/html/
文件系統                     容量  已用  可用 已用% 掛載點
/dev/mapper/webapp-webapp01   20G   33M   20G    1% /var/www/html

擴展 EXT4 文件系統

  • EXT4 文件系統(能放大也能縮小)

[root@server ~ 14:03:46]# umount /var/www/html
#<<< 'y'免輸入y
[root@server ~ 14:04:42]# mkfs.ext4 /dev/webapp/webapp01 <<< 'y'[root@server ~ 14:05:07]# mount /dev/webapp/webapp01 /var/www/html
[root@server ~ 14:06:32]# df -h /var/www/html
文件系統                     容量  已用  可用 已用% 掛載點
/dev/mapper/webapp-webapp01   20G   45M   19G    1% /var/www/html[root@server ~ 14:06:40]# cp /etc/host* /var/www/html
[root@server ~ 14:06:53]# ls /var/www/html
host.conf  hostname  hosts  hosts.allow  hosts.deny  lost+found

# 第一步:擴展邏輯卷 # 先放大邏輯卷到25G
[root@server ~ 14:06:59]# lvextend -L 25G /dev/webapp/webapp01Size of logical volume webapp/webapp01 changed from 20.00 GiB (5120 extents) to 25.00 GiB (6400 extents).Logical volume webapp/webapp01 successfully resized.
[root@server ~ 14:07:32]# lvs /dev/webapp/webapp01LV       VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertwebapp01 webapp -wi-ao---- 25.00g    # 第二步:擴展文件系統# 放大文件系統(EXT4用resize2fs)
[root@server ~ 14:07:38]# resize2fs /dev/webapp/webapp01
[root@server ~ 14:08:04]# df -h /var/www/html/
文件系統                     容量  已用  可用 已用% 掛載點
/dev/mapper/webapp-webapp01   25G   44M   24G    1% /var/www/html
[root@server ~ 14:08:33]# ls /var/www/html
host.conf  hostname  hosts  hosts.allow  hosts.deny  lost+found# 塊設備和文件系統一并擴展
[root@server ~ 14:08:55]# lvextend -rL 30G /dev/webapp/webapp01
[root@server ~ 14:09:31]# lvs /dev/webapp/webapp01 LV       VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertwebapp01 webapp -wi-ao---- 30.00g  [root@server ~ 14:09:42]# df -h /var/www/html
文件系統                     容量  已用  可用 已用% 掛載點
/dev/mapper/webapp-webapp01   30G   44M   28G    1% /var/www/html

縮減 EXT4 文件系統

縮減EXT4文件系統注意事項:

  • 不支持在線縮減,必須卸載后縮減。

  • 縮減后的容量,不能小于當前使用的容量。

ext4 減容流程:

  1. 卸載文件系統

  2. e2fsck 文件系統

  3. 縮減文件系統

  4. 縮減lv

  5. 掛載測試

[root@server ~ 14:10:45]# df -hT /var/www/html/
#卸載文件系統# 縮小的話,先卸載掛載點,檢查文件系統(重要!)
[root@server ~ 14:15:00]# umount /var/www/html [root@server ~ 14:15:16]# fsck /dev/webapp/webapp01
fsck,來自 util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/mapper/webapp-webapp01: clean, 16/1966080 files, 167447/7864320 blocks
#檢測文件系統# 檢查并修復錯誤
[root@server ~ 14:15:51]# e2fsck -f /dev/webapp/webapp01
e2fsck 1.42.9 (28-Dec-2013)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/webapp/webapp01: 16/1966080 files (0.0% non-contiguous), 167447/7864320 blocks#縮減文件系統# 先縮小文件系統到10G(必須小于邏輯卷當前大小)
[root@server ~ 14:16:04]# resize2fs /dev/webapp/webapp01 10G#縮減邏輯卷# 再縮小邏輯卷到10G
[root@server ~ 14:16:15]# lvreduce -L 10G /dev/webapp/webapp01[root@server ~ 14:16:26]# mount /dev/webapp/webapp01 /var/www/html
[root@server ~ 14:19:57]# df -h /var/www/html
文件系統                     容量  已用  可用 已用% 掛載點
/dev/mapper/webapp-webapp01  9.8G   37M  9.2G    1% /var/www/html[root@server ~ 14:20:21]# ls /var/www/html
host.conf  hostname  hosts  hosts.allow  hosts.deny  lost+found
總結:
#核心流程
卷組(VG):用vgextend加磁盤,vgreduce減磁盤(減前用pvmove移數據)。
邏輯卷(LV):用lvextend/lvreduce/lvresize調整大小。
文件系統:XFS 用xfs_growfs放大;EXT4 用resize2fs放大 / 縮小(縮小要先卸掛載點 + 檢查)。

邏輯卷快照

我們可以使用快照記錄了lv中數據,后續可以用來恢復數據

[root@server ~ 14:20:31]# lvcreate -s -n webapp01-snap1 -L 10G /dev/webapp/webapp01Logical volume "webapp01-snap1" created.# 卸載原始卷,掛載快照
[root@server ~ 14:45:16]# mkdir -p /webapp/webapp01[root@server ~ 14:45:24]# mount /dev/webapp/webapp01-snap1 /webapp/webapp01/
[root@server ~ 14:45:36]#  umount /dev/webapp/webapp01[root@server ~ 14:46:38]#  ls /webapp/webapp01/
host.conf  hostname  hosts  hosts.allow  hosts.deny  lost+found[root@server ~ 14:46:48]# echo hello world > /webapp/webapp01/hello.txt
[root@server ~ 14:48:17]# cat /webapp/webapp01/hello.txt
hello world

創建raid1 邏輯卷

清理
[root@server ~ 14:55:07]# umount /dev/webapp/webapp01-snap1
[root@server ~ 14:56:30]# lvs /dev/webappLV             VG     Attr       LSize  Pool Origin   Data%  Meta%  Move Log Cpy%Sync Convertwebapp01       webapp owi-a-s--- 10.00g                                                      webapp01-snap1 webapp swi-a-s--- 10.00g      webapp01 0.01                                   
[root@server ~ 14:56:30]#  lvremove /dev/webapp/webapp01*[root@server ~ 14:57:00]# lvs /dev/webapp
創建
[root@server ~ 14:57:02]# pvsPV         VG     Fmt  Attr PSize   PFree  /dev/sda2  centos lvm2 a--   52.00g   4.00m/dev/sdb          lvm2 ---   20.00g  20.00g/dev/sdc   webapp lvm2 a--  <20.00g <20.00g/dev/sdd   webapp lvm2 a--  <20.00g <20.00g[root@server ~ 15:00:08]#  lvcreate --type raid1 -n webapp01 -L 15G webapp
WARNING: ext4 signature detected on /dev/webapp/webapp01_rmeta_0 at offset 1080. Wipe it? [y/n]: yWiping ext4 signature on /dev/webapp/webapp01_rmeta_0.Logical volume "webapp01" created.[root@server ~ 15:00:53]# pvsPV         VG     Fmt  Attr PSize   PFree /dev/sda2  centos lvm2 a--   52.00g  4.00m/dev/sdb          lvm2 ---   20.00g 20.00g/dev/sdc   webapp lvm2 a--  <20.00g  4.99g/dev/sdd   webapp lvm2 a--  <20.00g  4.99g[root@server ~ 15:01:34]#  mkfs.xfs /dev/webapp/webapp01 
[root@server ~ 15:01:58]#  mount /dev/webapp/webapp01 /var/www/html/
[root@server ~ 15:02:12]# cp /etc/ho* /var/www/html/
[root@server ~ 15:02:17]# ls /var/www/html/
host.conf  hostname  hosts  hosts.allow  hosts.deny[root@server ~ 15:02:44]#  wipefs -a /dev/sdd
wipefs: error: /dev/sdd: probing initialization failed: 設備或資源忙[root@server ~ 15:04:06]# dd if=/dev/zero of=/dev/sdd bs=1M count=256
記錄了256+0 的讀入
記錄了256+0 的寫出
268435456字節(268 MB)已復制,0.0826577 秒,3.2 GB/秒[root@server ~ 15:04:46]# pvs
....../dev/sda2  centos lvm2 a--   52.00g  4.00m/dev/sdb          lvm2 ---   20.00g 20.00g/dev/sdc   webapp lvm2 a--  <20.00g  4.99g[unknown]  webapp lvm2 a-m  <20.00g  4.99g
[root@server ~ 15:05:13]# ls /var/www/html/
host.conf  hostname  hosts  hosts.allow  hosts.deny[root@server ~ 15:05:23]# umount /var/www/html
[root@server ~ 15:06:15]# mount /dev/webapp/webapp01 /var/www/html/
[root@server ~ 15:06:21]# ls /var/www/html/
host.conf  hostname  hosts  hosts.allow  hosts.deny
修復raid
[root@server ~ 15:06:26]# vgreduce --removemissing webapp --force 
[root@server ~ 15:11:45]# vgextend webapp /dev/sdd
[root@server ~ 15:12:13]# lvconvert --repair webapp/webapp01
[root@server ~ 15:12:51]# pvs|grep webapWARNING: Not using lvmetad because a repair command was run./dev/sdc   webapp lvm2 a--  <20.00g  4.99g/dev/sdd   webapp lvm2 a--  <20.00g  4.99g

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917603.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917603.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917603.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

向日葵參考基因組

向日葵參考基因組升級多個版本 向日葵基因組為油脂代謝、開花調控及菊類植物進化提供新見解-文獻精讀151-CSDN博客 官網 https://www.sunflowergenome.org/annotations-data/

什么是爬蟲協議?

什么是爬蟲協議&#xff1f; 爬蟲協議&#xff08;Crawl Protocol&#xff09;是指為了有效地收集網頁內容而建立的一些規定和標準&#xff0c;用以指導網絡爬蟲如何在互聯網上抓取信息。 爬蟲協議主要指的是Robots協議&#xff08;Robots Exclusion Protocol&#xff09;&am…

空間平面旋轉與xoy平行

空間平面旋轉與xoy平行 法向量 空間平面axbyczd0的其中一個法向量(a,b,c),法向量垂直于空間平面。目標平面平行于xoy的平面為0x0yczd0;其中一個法向量為(0,0,c),c可以為不為0的任意值&#xff0c;取(0,0,1)&#xff0c;目標平面的的法向量垂直于xoy平面 向量叉乘點乘 兩個向量的…

odoo reportbro 拖拽式報表設計

報表設計以及下載 在實際業務中應用非常的廣泛且頻繁。odoo 本身也具有報表設計功能&#xff0c;但都是代碼模式。且需要開發人員定制化開發&#xff0c;耗費成本高 所以引入reportbro報表設計就非常的簡單快捷。低代碼模式 以下以銷售報表為例進行演示 報表字段配置報表界面設…

數字信號處理_編程實例1

stem([1,2,3]) 一、初始設置 %% 初始設置 % 清空工作空間&#xff0c;關閉無關頁面 clc,clear,close all; % 繪圖變量 font_size 12; %全局基礎字體大小 axis_size 10; %坐標軸刻度標簽字體大小 line_width 2; %繪圖線條寬度 legend_size 10.5; %圖例字體大小 marker_siz…

Docker 安裝部署 OceanBase

1.拉取鏡像 docker pull oceanbase/oceanbase-ce:latest2.啟動oceanbase容器 docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE0 -d quay.io/oceanbase/oceanbase-ce3.查看oceanbase初始化的日志信息 docker logs oceanbase-ce4.進入oceanbase容器 docker exec -it o…

【華為機試】685. 冗余連接 II

文章目錄685. 冗余連接 II題目描述示例 1&#xff1a;示例 2&#xff1a;提示&#xff1a;解題思路算法分析核心思想算法策略算法對比問題分類流程圖并查集環檢測流程入度統計與候選邊選擇情況分析決策樹完整算法流程復雜度分析時間復雜度空間復雜度關鍵實現技巧1. 并查集優化2…

Redis之Hash和List類型常用命令

Redis之Hash和List類型常用命令一、Hash類型詳解1. Hash類型的特點2. 常用命令及示例&#xff08;1&#xff09;設置字段值&#xff08;2&#xff09;獲取字段值&#xff08;3&#xff09;刪除字段&#xff08;4&#xff09;其他常用命令3. 應用場景二、List類型詳解1. List類型…

【測試】?動化測試概念篇

本節?標&#xff1a;?動化測試Web?動化測試selenium1. ?動化1.1 ?動化概念?動化在?活中處處可?&#xff0c;?動的代替?的?為完成操作。?動灑?機&#xff0c;主要通上?就可以?動化灑?并且可以?動的旋轉。?動洗?液&#xff0c;免去了?動擠壓可以?動感應出洗…

Java中給List<T> 對象集合去重

Java中給List 對象集合去重List<Student> getStudentList studentMapper.getStudentList();List<Student> distinctInsurance distinctByField(getStudentList, Student::getCertNo);public static <T> List<T> distinctByField(List<T> list…

最小二乘法MSE

最小二乘法MSEx1x2x3x4x5x6x7x8x0y014805-29-31339-41064-14-2-1481-114-1-65-123-32-21305-23105114-81126-15-15-8-157-4-1221-39511-10-243-9-671-87-1404-35101371422-3-7-2-80-6-5-91-3091前景知識: 矩陣相關公式y(339?11430126?395?87422?309)y\begin{pmatrix} 339&a…

Pixel 4D 3.4.4.0 | 支持豐富的壁紙資源,高清畫質,高度的個性化設置能力,智能推薦功能

Pixel 4D是一款功能強大且用戶體驗良好的動態壁紙應用。它提供了豐富的壁紙資源和高清畫質&#xff0c;讓用戶可以輕松找到自己喜歡的壁紙。此外&#xff0c;該應用還具備高度的個性化設置能力&#xff0c;允許用戶根據自己的喜好調整壁紙效果。智能推薦功能則能幫助用戶發現更…

<PhotoShop><JavaScript><腳本>基于JavaScript,利用腳本實現PS軟件批量替換圖片,并轉換為智能對象?

前言 PhotoShop軟件支持JavaScript腳本,來擴展軟件的功能,官方本身也提供了一些常用腳本,如圖像處理等,同時也支持自定義的JavaScript腳本。 環境配置 系統:windows 平臺:visual studio code 語言:JavaScript 軟件:PhotoShop 2022 版本:23.2.1 概述 本文利用Java…

【Linux】System V - 基于建造者模式的信號量

目錄 信號量和P、V原語 信號量集結構體 信號量操作接口 semget semctl semop 封裝Sem 關于建造者模式 信號量和P、V原語 信號量和 P、V 原語由 Dijkstra &#xff08;迪杰斯特拉&#xff09;提出 信號量值含義 S>0: S 表?可?資源的個數 S0: 表??可?資源&a…

機器學習(11):嶺回歸Ridge

嶺回歸是失損函數通過添加所有權重的平方和的乘積(L2)來懲罰模型的復雜度。均方差除以2是因為方便求導&#xff0c;w_j指所有的權重系數, λ指懲罰型系數&#xff0c;又叫正則項力度特點:嶺回歸不會將權重壓縮到零&#xff0c;這意味著所有特征都會保留在模型中&#xff0c;但它…

調整Idea緩存目錄,釋放C盤空間

本文使用 Idea2024 Idea 會將一些配置默認緩存在C盤&#xff0c;使用久了會占用大量空間&#xff08;本人的Idea占用了將近5個G&#xff0c;以至于不得不進行遷移&#xff09; 緩存目錄主要涉及以下四個目錄&#xff0c;四個目錄可以分為兩組&#xff0c;每組目錄必須一起調整 …

手搓柵格工具-山體陰影

一、概述 山體陰影工具通過為柵格中的每個像元確定照明度&#xff0c;來獲取表面的假定照明度。 通過設置假定光源的位置并計算每個像元相對于相鄰像元的照明度值來實現此目的。 它可以顯著增強用于分析或圖形顯示的表面的可視化效果&#xff0c;尤其是在使用透明度時。 默認情…

Censtos docker安裝方法

#設置防火墻 systemctl stop firewalld.service setenforce 0 #安裝依賴包 yum install -y yum-utils device-mapper-persistent-data lvm2 #yum-utils&#xff1a;提供了 yum-config-manager 工具。 #device mapper&#xff1a; 是Linux內核中支持邏輯卷管理的通用設備映射機制…

單片機51 day46

單片機 一&#xff1a;基礎概念 一&#xff1a;單片機最小系統 單片機&#xff1a;電源時鐘&#xff08;晶振&#xff09;復位 //實現的最小組件 電源&#xff1a;5V直流 時鐘(晶振)&#xff1a;決定系統運行的速率 一般12M&#xff08;不超過50M&#xff09;&#xff0c…

【無標題】解鎖未來無線網絡的無限可能——Mesh自組網設備

在科技迅猛發展的今天&#xff0c;無線網絡已經成為了現代生活不可或缺的一部分。無論是在家庭中娛樂觀看視頻、在線游戲&#xff0c;還是在企業中進行辦公、遠程協作&#xff0c;網絡的穩定性和覆蓋范圍都直接影響著我們的使用體驗。傳統的Wi-Fi網絡在面臨多設備同時連接或大面…