_LVM——让Linux磁盘空间的弹性管理
什么是LVM?
LVM(Logical Volume Manager)邏輯卷管理是在Linux2.4內核以上實現的磁盤管理技術。它是Linux環境下對磁盤分區進行管理的一種機制。現在不僅僅是Linux系統上可以使用LVM這種磁盤管理機制,對于其它的類UNIX操作系統,以及windows操作系統都有類似與LVM這種磁盤管理軟件。
相關該概念
- Physical Volume(PV)
物理卷,將實際的磁盤分區(partition)系統識別碼(system ID)修改為8e后,在通過pvcreate指令轉化為LVM最底層的物理卷,作為后續空間管理的基礎。
- Volume Group(VG)
卷組,將數個PV進行整合,即形成了VG,在32位的操作系統中,LV的大小與PE的大小有關;在64位的操作系統中,LV幾乎沒有容量限制。
- Physical Extent(PE)
物理區塊,他是LVM中的最小存儲單元。PE類似于文件系統中的block。
- Logical Volume(LV)
邏輯卷,由VG劃分而來,LV的大小與PE的大小及PE的數量有關,Size(LV)= Count(PE)* Size(PE)
結構示意圖
LVM結構示意圖磁盤劃分為PV —> PV組成了VG,同時設置了PE大小 —> 從VG中劃分出LV
LVM的工作原理?
它就是通過將底層的物理硬盤抽象的封裝起來,然后以邏輯卷的方式呈現給上層應用。在傳統的磁盤管理機制中,我們的上層應用是直接訪問文件系統,從而對底層的物理硬盤進行讀取,而在LVM中,其通過對底層的硬盤進行封裝,當我們對底層的物理硬盤進行操作時,其不再是針對于分區進行操作,而是通過一個叫做邏輯卷的東西來對其進行底層的磁盤管理操作。比如說我增加一個物理硬盤,這個時候上層的服務是感覺不到的,因為呈現給上層服務的是以邏輯卷的方式。
LVM的優缺點
優點:
- 可以在系統運行的狀態下動態的擴展文件系統的大小
- 文件系統跨越多個磁盤,文件系統的大小不受磁盤大小的限制
- LVM的存儲空間可以通過新增磁盤的方式擴容
缺點:
- 從卷組中移除一個磁盤的時候必須使用reducevg命令
- 當卷組中有一個磁盤損壞了,整個卷組都會受到影響(由于一份數據可能會存儲在不同的磁盤中)
- 在磁盤創建過程中增加了額外的步驟,所以數據存貯性能會受到影響
LVM的實戰使用
LVM實現流程示意圖- 創建LVM過程
① 通過fdisk修改磁盤分區的SYSTEM ID為8e,將文件系統類型更改為Linux LVM
# fdisk 需要修改的磁盤選擇 t 命令修改
選擇分區號,設置系統ID信息
② 創建PV
# pvcreate 需要轉化為PV的磁盤分區其他PV相關指令
pvscan:顯示當前PV相關信息
pvdisplay (+ 磁盤分區路徑):顯示詳細的(分區)PV信息
③ 創建VG
# vgcreate [-s N[mgt]] VG名稱 PV名稱可以通過 -s 后面接PE的大小,代為可以是m,g,t
其他VG相關指令
vgscan:顯示當前VG相關信息
vgdisplay:顯示目前系統上的VG狀態
vgextend:在VG內增加額外的PV
vgreduce:在VG內一處PV
vgchange:設定VG是否啟動(active)
vgremove:刪除一個VG
④ 創建LV
# lvcreate [-L N[mgt]] [-n LV名稱] VG名稱 (-L 后跟lV容量的大小)# lvcreate [-l N] [-n LV名稱] VG名稱 (-l 后跟PE的個數)
其他相關命令
lvscan:查詢系統上的LV
lvdisplay:顯示系統上的LV詳細信息
lvextend:增加LV的容量
lvreduce:減少LV的容量
lvremove:刪除一個LV
lvresize:對LV進行容量大小的調整
⑤ 格式化新建的LV,否則將無法進行目錄掛載
⑥ 文件目錄的掛載
# mount LV路徑 目錄路徑過程記錄:
創建分區信息如下,注意修改 Id 為 8e
[root@localhost /]# fdisk /dev/sdbWARNING: DOS-compatible mode is deprecated. It's strongly recommended toswitch off the mode (command 'c') and change display units tosectors (command 'u').Command (m for help): pDisk /dev/sdb: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xbb091226Device Boot Start End Blocks Id System /dev/sdb1 1 262 2104483+ 8e LinuxLVM創建過程
[root@localhost /]# pvcreate /dev/sdb1 //創建pvPhysical volume "/dev/sdb1" successfully created [root@localhost /]# vgcreate pvZHB /dev/sdb1 //創建vgVolume group "pvZHB" successfully created [root@localhost /]# lvcreate -L 2G -n lv_zhb vgZHB //創建lvLogical volume "lv_zhb" created. [root@localhost /]# mkfs.xfs /dev/vgZHB/lv_zhb //格式化lv meta-data=/dev/vgZHB/lv_zhb isize=256 agcount=4, agsize=131072 blks= sectsz=512 attr=2, projid32bit=0 data = bsize=4096 blocks=524288, imaxpct=25= sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal log bsize=4096 blocks=2560, version=2= sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@localhost /]# mount /dev/vgZHB/lv_zhb /zhbDir/ //掛載- LV擴容(注意需要先對分區進行格式化,若擴容后再可視化會對原有文件造成影響)
① 確定VG是否存在多余的容量
LV是由VG進行劃分創建的,若VG無剩余空間則無法對LV進行擴容,所以首先需要新增磁盤,并通過 pvcreate 指令添加PV,vgextend擴展VG空間。注意:新加磁盤分區后需要進行格式化,否則在最終完成擴容后,擴容空間將無法正常使用。② LV 進行擴容
在VG剩余空間足夠的情況下,只需要通過 lvresize 指令將剩余容量加入到所需要增加的LV裝置內即可。# lvresize -L +N(M/G/T) 進行擴容的LV路徑
③ 若目標目錄掛載點的文件系統為xfs,則需要執行如下命令才能最終達到擴容
# xfs_growfs 目標目錄過程記錄
新建邏輯分區sdb5后,執行如下操作進行擴容
[root@localhost 桌面]# pvcreate /dev/sdb5 //創建pvPhysical volume "/dev/sdb5" successfully created [root@localhost 桌面]# vgextend vgZHB /dev/sdb5 //擴展vgVolume group "vgZHB" successfully extended [root@localhost 桌面]# lvresize -L +2G /dev/vgZHB/lv_zhb //擴展lvSize of logical volume vgZHB/lv_zhb changed from 2.00 GiB (512 extents) to 4.00 GiB (1024 extents).Logical volume lv_zhb successfully resized. [root@localhost 桌面]# df -Th //查看掛載信息,發現空間無變化 Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg_zhbcentos-lv_rootext4 45G 5.5G 39G 13% / tmpfs tmpfs 939M 228K 939M 1% /dev/shm /dev/sda1 ext4 477M 41M 411M 10% /boot /dev/sr0 iso9660 2.0G 2.0G 0 100% /media/CentOS-6.10-x86_64-LiveDVD /dev/mapper/vgZHB-lv_zhbxfs 2.0G 33M 2.0G 2% /zhbDir [root@localhost /]# xfs_growfs /zhbDir/ //執行xfs_growfs meta-data=/dev/mapper/vgZHB-lv_zhb isize=256 agcount=4, agsize=131072 blks= sectsz=512 attr=2, projid32bit=0 data = bsize=4096 blocks=524288, imaxpct=25= sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 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 524288 to 1048576 [root@localhost /]# df -Th //查看掛載信息,發現空間已擴容 Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg_zhbcentos-lv_rootext4 45G 5.5G 39G 13% / tmpfs tmpfs 939M 228K 939M 1% /dev/shm /dev/sda1 ext4 477M 41M 411M 10% /boot /dev/sr0 iso9660 2.0G 2.0G 0 100% /media/CentOS-6.10-x86_64-LiveDVD /dev/mapper/vgZHB-lv_zhbxfs 4.0G 33M 4.0G 1% /zhbDir參考鏈接:
邏輯卷管理器(LVM)-Linux初學者-51CTO博客?blog.51cto.com鳥哥的 Linux 私房菜 -- 第十四章、磁碟配額(Quota)與進階檔案系統管理?linux.vbird.org一張圖讓你學會LVM - Linux就該這么學 - 博客園?www.cnblogs.com總結
以上是生活随笔為你收集整理的_LVM——让Linux磁盘空间的弹性管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2核4g服务器选啥系统好,云服务器2核4
- 下一篇: gif透明背景动画_常用GIF动图制作工