linux LVM邏輯卷管理
什麽是LVM
LVM是邏輯卷管理(Logical Volume Manager)的簡稱,它是建立在物理存儲設備之上的一個抽象層,允許你生成邏輯存儲卷,與直接使用物理存儲在管理上相比,提供了更好靈活性。
LVM將存儲虛擬化,使用邏輯卷,你不會受限於物理磁盤的大小,另外,與硬件相關的存儲設置被其隱藏,你可以不用停止應用或卸載文件系統來調整卷大小或數據遷移.這樣可以減少操作成本.
如上圖所示:
- 最底層是物理硬盤:/dev/sda1、/dev/sdb1、/dev/sdc1...
- 中間層:存儲虛擬化,所有物理硬盤視為一個邏輯集合(卷組)
- 最頂層:將卷組劃分為多個邏輯卷,邏輯卷大小可以動態調整等。
基本概念
物理存儲介質(The Physical Media)
這裏指系統的存儲設備,如:/dev/hda1、/dev/sda等等,是存儲系統最低層的存儲單元。物理卷(PV, Physical Volume)
物理卷就是指磁盤,磁盤分區或從邏輯上和磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有和LVM相關的管理參數。當前LVM允許你在每個物理卷上保存這個物理卷的0至2份元數據拷貝.默認為1,保存在設備的開始處.為2時,在設備結束處保存第二份備份.卷組(VG, Volume Group)
LVM卷組類似於非LVM系統中的物理硬盤,其由物理卷組成。能在卷組上創建一個或多個“LVM分區”(邏輯卷),LVM卷組由一個或多個物理卷組成。邏輯卷(LV, Logical Volume)
LVM的邏輯卷類似於非LVM系統中的硬盤分區,在邏輯卷之上能建立文件系統(比如/home或/usr等)。物理卷的意義:一塊物理硬盤不能直接使用,需要經過分區、格式化等操作之後變成物理卷之後才能使用。
- 1個卷組底層有多個物理卷。
1個卷組可以創建多個邏輯卷,邏輯卷的大小可以動態調整。
比起正常的硬盤分區管理,LVM更富於彈性:
- 使用卷組(VG),使眾多硬盤空間看起來像一個大硬盤。
- 使用邏輯卷(LV),可以創建跨越眾多硬盤空間的分區。
- 可以創建小的邏輯卷(LV),在空間不足時再動態調整它的大小。
- 在調整邏輯卷(LV)大小時可以不用考慮邏輯卷在硬盤上的位置,不用擔心沒有可用的連續空間。It does not depend on the position of the LV within VG, there is no need to ensure surrounding available space.
- 可以在線(online)對邏輯卷(LV)和卷組(VG)進行創建、刪除、調整大小等操作。LVM上的文件系統也需要重新調整大小,某些文件系統也支持這樣的在線操作。
- 無需重新啟動服務,就可以將服務中用到的邏輯卷(LV)在線(online)/動態(live)遷移至別的硬盤上。
從零開始,給/home分配最大磁盤空間
linux系統安裝過程省略,現在的場景是系統按最小模式安裝,物理硬盤有大量空間未被格式化,目前擬將硬盤剩余空間分配給/home目錄。
前期準備:
0.1 磁盤分區情況:
fdisk -l
0.1 磁盤空間使用情況:
df -h
如果2種情況的磁盤容量不相等,則說明有磁盤未使用。可以繼續後續操作
1. 新增分區
fdisk /dev/sda
c
p
n
p
3
w
2.partprobe(or reboot)
3. 查看邏輯卷
vgdisplay
fdisk -l
4. 創建邏輯卷組
vgcreate vg_zy /dev/sda4
vgcreate -s 32M VolGroup01 /dev/sdb1
vgcreate創建卷組:
格式:vgcreate [-s <8M|16M|...>] vg0 /dev/sdb{1,2,3...}
-s:指定擴展塊(PE)的大小,默認為4MB;(相當與磁盤上的簇,擴展邏輯卷的基本單位。後面的值可以是8M 16M 32M 64M .....最多65532個擴展塊。
vg0:新創建的卷組的名字。
/dev/sdb{1,2,3...}:需要的物理卷可以寫多個;
5. 創建邏輯卷
vgs
lvcreate -L800g -n home vg_zy
6. 建立文件系統
mkfs -t ext4 /dev/vg_zy/home
7. 查看/home目錄掛載點 df -h /home
8. 掛載存儲
mount /dev/vg_zy/home /home
9. 修改fstab配置文件實現自動掛載
df -h /home 查看
vim /etc/fstab
/dev/mapper/vg_zy-home /home ext4 defaults 1 2
第五列是dump備份設置。
當其值設置為1時,將允許dump備份程序備份;設置為0時,忽略備份操作;
第六列是fsck磁盤檢查設置。
其值是一個順序。當其值為0時,永遠不檢查;而 / 根目錄分區永遠都為1。其它分區從2開始,數字越小越先檢查,如果兩個分區的數字相同,則同時檢查。
將新增硬盤空間擴容給/ddhome
在此示例中,/ddhome目錄也是新建的目錄。
1.==不重啟顯示新增的磁盤信息==
ls /sys/class/scsi_host/
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
查看卷組:vgs
顯示邏輯卷:lvs
查看物理卷信息: pvdisplay
df -T #查看分區格式
2.將新增的磁盤(硬件)添加到卷組
#vgextend centos /dev/sdb
vgextend vgname /dev/sdc
3.新建邏輯卷:在卷組centos創建名為"/dev/mapper/centos-ddhome"的邏輯卷
lvcreate -L 1300G -n ddhome centos
4.格式化邏輯卷
mke2fs -t ext4 /dev/mapper/centos-ddhome
5.掛載目錄
rm -rf /ddhome && mkdir /ddhome
mount /dev/mapper/centos-ddhome /ddhome
df -h
邏輯卷擴容
1.不重啟顯示新增的磁盤信息
ls /sys/class/scsi_host/
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
fdisk -l 查看新增磁盤是否已經顯示
2.將新增的磁盤添加到卷組
vgextend vg_ddz /dev/sdc
3.新增500G
lvextend -L +500G /dev/mapper/vg_ddz-lv_ddhome
lvextend -l +100%FREE /dev/mapper/vg_ddz-lv_ddhome
4.同步文件系統
resize2fs /dev/mapper/vg_ddz-lv_ddhome
or
xfs_growfs /dev/mapper/centos-root
- 參考:http://dreamfire.blog.51cto.com/418026/1084729
釋放邏輯卷A磁盤空間,分配給邏輯卷B
1.查看正在使用/home的進程
fuser -l /home
ps -ef|grep xxx
kill -9 pid
2.卸載掛載目錄
umount /home
3.檢查vg_ddz-lv_home文件的錯誤性
e2fsck -f /dev/mapper/vg_ddz-lv_home
4.調整/home為100G
resize2fs -p /dev/mapper/vg_ddz-lv_home 80G
5.縮減物理邊界
lvreduce -L 80G /dev/mapper/vg_ddz-lv_home
輸入y
6.重新掛載/home
mount /home
7.查看卷組vg可用空間
vgs
8.新增邏輯卷
lvcreate -L 150G -n lv_ddhome vg_ddz
9.格式化邏輯卷
mke2fs -t ext4 /dev/mapper/vg_ddz-lv_ddhome
10.掛載目錄
rm -rf /ddhome && mkdir /ddhome
mount /dev/mapper/vg_ddz-lv_ddhome /ddhome
11.查看結果
df -h
ext3升級到ext4
umount /ddhome
e2fsck -f /dev/mapper/vg_ddz-lv_ddhome #可能要執行2遍
tune2fs -O extents,uninit_bg,dir_index /dev/mapper/vg_ddz-lv_ddhome
fsck -pf /dev/mapper/vg_ddz-lv_ddhome
mount -t ext4 /dev/mapper/vg_ddz-lv_ddhome /ddhome
總結
通過上面的實踐,可以再根據上圖,加深對LVM的理解。
參考文獻
- Linux 磁盤、分區、掛載和掛載點、邏輯卷管理 (Logical Volume Manager)等
tips:本文屬於自己學習和實踐過程的記錄,很多圖和文字都粘貼自網上文章,沒有註明引用請包涵!如有任何問題請留言或郵件通知,我會及時回復。
linux LVM邏輯卷管理