一、LVM(邏輯卷)介紹
LVM的全名是邏輯卷管理員(Logic Volume Manager),它以卷為單位,不像傳統磁盤以分區為單位,以便可以彈性地調整磁盤空間。他可以在線調整卷的大小,也可以可讀可寫的模式建立快照。
物理卷(Physical Volume,PV):物理卷是構成LVM的最主要的軟件包,在
Linux系統中,物理卷就是磁盤的分區,要不過要作為LVM物理卷,其分區系統識別碼必須標識為LVM
卷組(Volume Group,VG):可以使用一個或多個物理卷組成一個卷組
邏輯卷(Logic Volume,LV):你可以把邏輯卷當成分區一樣使用,邏輯卷的空間是由卷組提供的。
下表是LVM的管理工具:
物理卷
卷組
邏輯卷
掃描
Pvscan
Vgscan
Lvscan
查看
Pvdisplay
Vgdisplay
Lvdisplay
新建
Pvcreate
Vgcreate
Lvcreate
卸載
Pvremove
Vgremove
Vgremove
放大
無
Vgextend
Lvextend
縮小
無
Vgreduce
Lvreduce
二、建立LVM
1、建立物理卷
新建分區:
#parted –s /dev/sdb mklabel msdos
#parted –s /dev/sdb mkpartfs primary ext2 0 1024
#parted –s /dev/sdb mkpartfs primary ext2 1024 2048
#parted –s /dev/sdb mkpartfs primary ext2 2048 3072
#parted –s /dev/sdb mkpartfs primary ext2 3072 4096
設置系統標識為LVM:
#parted –s /dev/sdb set 1 lvm
#parted –s /dev/sdb set 2 lvm
#parted –s /dev/sdb set 3 lvm
#parted –s /dev/sdb set 4 lvm
#fdisk –l /dev/sdb | grep –i lvm
Partprobe同步磁盤狀態
建立物理卷:
#pvcreate /dev/sdb{1,2,3,4}
查看一下我創建的物理卷:
#pvdisplay
用pvs查看一下:
可以看到我/dev/sdb的四個分區都已經成為物理卷
2、建立卷組
VGNAME是卷組的名稱,第一個VGNAME都是唯一的,最好不要與/dev/下的其他設備名沖突。以下是我用/dev/sdb1,/dev/sdb2這兩個物理卷建立一個叫mainVG的卷組
#vgcreate mainVG /dev/sdb1 /dev/sdb2
查看一下我的卷組信息
#vgdisplay mainVG
#vgs
3、建立邏輯卷
邏輯卷的設備文件被存儲在/dev/VGNAME/LVNAME,以下是我建立一個1G大小的邏輯卷空間
#ls /dev/mainVG
#lvcreate –L 1G –n 1stLV /dev/mainVG
查看邏輯卷是不為激活狀態
#lvs
如果未激活用下面命令激活
#lvchange –ay /dev/mainVG/1stLV
建立出來的邏輯卷,你就可以當做一個分區,在邏輯卷上建立文件系統,掛載這個文件系統
#mkfs.ext3 –F /dev/mainVG/1stLV
三、調整LVM
1、調整卷組
創建分區/dev/sdb3後創建物理卷
#pvcreate /dev/sdb3
#vgdisplay mainVG | grep “VG Size”
#pvdisplay /dev/sdb3 | grep “PV Size”
以上可以看到,現在我的mainVG大小是1.9G,而且我的一個分區/dev/sdb3大小是900多M
#vgextend mainVG /dev/sdb3
#vgdisplay mainVG | grep “VG Size”
現在我的mainVG大小就變成了2.85G了,增加大小正好是/dev/sdb3
然後我再把/dev/sdb3從mainVG中卸載,mainVG又回到原先的1.9G了
#vgreduce mainVG /dev/sdb3
#vgdisplay mainVG | grep Size
2、在線調整邏輯卷
放大:先放大LV再放大文件系統
先擴展LV加1G
#lvextend –L +1G /dev/mainVG/1stLV
再看看我的邏輯卷大小
#lvdisplay /dev/mainVG/1stLV | grep ‘LV Size’
下一步e2fsck檢測LV分區
#e2fsck –f /dev/mainVG/1stLV
下面在線拉伸LV分區
#resize2fs /dev/mainVG/1stLV
然後df查看LV分區已經在線拉伸了1G
四、LVM高級應用
1、產生卷快照
你可以把卷中的數據凍結起來,就像是為數據排了一張照片,可以永久保存建立時的狀態
#mount /dev/mainVG/1stLV /mnt/lvm
#lvcreate –L 200M –s –n backup1 /dev/mainVG/1stLV
2、讀取卷快照
#mount /dev/mainVG/backup1 /mnt/backup
可以看到這是我邏輯卷快照的內容,現在我用20M的數據覆蓋原本邏輯的passwd
#dd if=/dev/zero of=/mnt/lvm/passwd bs=1M count=20
而且又新建了一個group文件,可快照中的數據並沒有改變
3、卸載邏輯卷快照
#
umount /dev/mainVG/backup1
卸載快照之前必須先卸載掛載
#lvremove /dev/mainVG/backup1
可以看到,現在已使用空間降了200M
4、移動物理卷
加入一個新的物理卷,這裡可以看到/dev/sdb2已經使用了500多M了
#vgextend mainVG /dev/sdb3
通過pvmove將/dev/sdb2的數據遷移到/dev/sdb3上
#pvmove /dev/sdb2 /dev/sdb3
#pvscan
可以看到/dev/sdb2上的資料都移動到/dev/sdb3上了
5、卸載物理卷
#vgreduce mainVG /dev/sdb2
#pvremove /dev/sdb2
現在/dev/sdb2自由
五、遷移至其他系統
進行遷移卷組的第一個步驟就是導出卷組
1、導出卷組
用vgchange將卷組修改為非有效的配置
#vgchange –a n mainVG
然後用vgexport導出卷組
#vgexport mainVG
2、導入卷組
用vgimport命令導入卷組,然後修改為有效配置
#vgimport mainVG
#vgchange –a y mainVG
http://www.linuxeye.com/Linux/793.html