linux lv

cccgw發表於2008-04-30
linux lvm lv操作步驟[@more@]

1) 如何使用lvm,建立邏輯卷的流程和例項


比如說,在一個物理硬碟/dev/hda上,我們需要將/dev/hda5,/dev/hda6作為pv

1 fdisk劃分hda5,hda6,並且將這兩個分割槽的標誌(鍵入t改)改為(0x)8e
然後用partprobe通知OS磁碟分割槽的變化
2 pvcreate /dev/hda5 /dev/hda6(-s xxM可設定PE大小)

3 vgcreate rootvg /dev/hda5 /dev/hda6

4 lvcreate -L 100M -n lv1 rootvg
從我們的rootvg中,建立一個100M的邏輯卷lv1
lvcreate -L8192m -i4 -I64k vg_db -n lv_8g_001
這裡的-i不能大於pv數,是參與條帶化的PV數。 -I是條帶大小。
5 mkfs.ext3 /dev/rootvg/lv1

6 mkdir /mnt/lvm;mount /dev/rootvg/lv1 /mnt/lvm

2) 如何動態放大/縮小一個邏輯卷/邏輯卷組

我們如何放大lv?比如上面的lv1?流程:

1 lvextend -L 200M /dev/rootvg/lv1
將lv1增加200M
2 ext2online /dev/rootvg/lv1
讓lv1容量更改立即生效

減小lv,網上很多文章介紹的是ReiserFS,這裡我們是ext3檔案系統,如果我們需要減少50M:

1 umount /mnt/lvm
這裡,需要先解除安裝分割槽
2 mke2fs -n /dev/rootvg/lv1
計算lv1的block數
這裡一定要加-n引數,這是計算lv1的block數,而不是格式化分割槽,注意。
並且注意,從MB->KB這些的計算,都是乘1024,不是1000,這是個細節問題
3 計算減少50M後的block數。從mke2fs -n /dev/rootvg/lv1,我們可以得出2個需要的資訊:
Block size和blocks,這兩個數的乘積就是分割槽大小A(單位位元組),
我們把需要減小的容量50M換算成位元組B,然後A-B的結果除以Block size,就是剩餘的block數
4 resize2fs -f /dev/rootvg/lv1 剩餘的block數
調整檔案系統大小
5 lvreduce -L-50M /dev/rootvg/lv1
調整lv分割槽大小,減小50M
6 重新mount,df察看一下容量的減小

動態加大VG:
這裡我們新增一個PV並加入VG

1 fdisk增加一個(0x)8e標誌的分割槽/dev/hda7
2 vgextend rootvg /dev/hda7


縮小邏輯卷組VG:

1 搬移PV中的資料(只限於同一VG中)
#pvmove [-n ] []

#pvmove /dev/hda5 /dev/hda6
將VG中pv hda5的內容搬移到hda6中
pvmove /dev/hda5(也可以這樣,lvm決定hda2的內容被複制到哪裡)
2 vgreduce rootvg /dev/hda5
把vg hda5移除

3) 如何刪除邏輯卷/邏輯卷組

刪除VG流程:
1 umount /掛接點
2 lvremove /dev/rootvg/lv1
3 vgchange -a n rootvg(關閉rootvg)
4 vgremove rootvg

轉arronax的文章:

建立LVM:
1,建立PV,例如3塊scsi硬碟:/dev/sda /dev/sdb /dev/sdc
準備分割槽 首先要對硬碟進行初始化 建立 PV
#pvcreate /dev/sda
#pvcreate /dev/sdb
#pvcreate /dev/sdc
2,建立卷組
#vgcreate test_vg /dev/sda /dev/sdb /dev/sdc
然後用vgdisplay 檢視和驗證卷組的資訊
#vgdisplay
3,建立LV
在確定卷組test_vg正確後,就可以在其上建立LV,
#lvcreate -L 1G -n test_lv test_vg
4,建立檔案系統
#mke2fs /dev/test_vg/test_lv
啟用VG
在使用之前啟用:#vgchange -a y test_vg
當不在使用的時候,用#vgchange -a n test_vg
擴充套件LV
#lvextend -L 1G /dev/test_vg/test_lv
刪除LV
#lvremove /dev/test_vg/test_lv
顯示vg的資訊
#vgdisplay test_vg|grep "Total PE"
刪除vg
#vgremove test_vg


****為VG增加新的PV(/dev/sdd1)
#vgextend test_vg /dev/sdd1
從VG中移除PV
首先確認PV有沒有被LV使用 使用命令 pvdisplay檢視
#pvdisplay /dev/sdd1
如果pv在被使用,則應把資料進行遷移,然後用vgreduce把它從VG中刪除,如:#vgreduce test_vg

/dev/sdd1

系統啟動和關閉
為了使系統啟動時可自動啟用並使用LVM,可將下面幾行新增到rc指令碼中
/sbin/vgscan
/sbin/vgchange -a y
關閉系統時,可將下面幾行新增到關機rc指令碼中,
/sbin/vgchange -a n

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/668365/viewspace-1003192/,如需轉載,請註明出處,否則將追究法律責任。

相關文章