1. 程式人生 > >linux 中的邏輯卷

linux 中的邏輯卷

linux lvm 邏輯卷 管理

一.簡單介紹:

MD, DM:是內核中兩種實現邏輯設備的模塊

MD: meta device,multidisk,邏輯設備:軟件raid

DM: Device Mapper 設備映射,邏輯設備: LVM2(動態增減)



二.新建邏輯卷

1.創建分區:

fdisk -l /dev/sdb  /dev/sdc      #n--->p--->t--->w   調整類型為8e


2.更新內核信息

partx -a /dev/DEVICE

partprobe 
cat /proc/partitions :查看


3.物理卷(pv)

創建物理卷:pvcreate /dev/sdb dev/sdc1
顯示物理卷:pvs,pvscan,pvdisplay
移除物理卷:pvremove /dev/sdb


4.卷組(vg)

創建卷組: vgcreate vgname  /dev/sdb /dev/sdc     #-s  指定PE的大小(PE大小默認為4MB)


擴展卷組:(添加新的物理卷到卷組中):
        fdisk -l /dev/sdc
        pvcreate /dev/sdc2
        vgextend vgname /dev/sdc2
    
顯示卷組: vgs,vgdisplay,vgscan
    

縮減卷組(從卷組中刪除物理卷):
    把pv裏數據移走: pvmove  -n myvg /dev/sdc2 
    縮減vg:vgreduce myvg  /dev/sdc2
    刪除pv: pvremove /dev/sdc2
    
刪除卷組:
    先刪除邏輯卷:lvremove /dev/vgname/lvname
    刪除卷組:vgremove vgname
    
激活所有卷組:    
    vgchange -a y


5.邏輯卷

創建邏輯卷:
    lvcreate -L 1500M -n lvname vgname    
             -L 指定大小,-n 指定邏輯卷名字               
    註意:#/dev/vgname/lvname  軟鏈接      /dev/mapper/vgname-lvname實際    

若使用全部卷組創建邏輯卷:
    第一:查看卷組的PE數:vgdisplay | grep "PE"
    第二:進行創建        lvcreate -l 4730 -n lvname vgname


刪除邏輯卷:
    umount /dev/vgname/lvname
    lvremove /dev/vgname/lvname


6.創建文件系統

mkfs.ext4 /dev/vgname/lvname


7.掛載

mount /dev/myvg/mylv         /mnt

(1)設置開機自動掛載vim /etc/fstab
掛載設備   掛載點   文件系統  掛載選項  dump、fsck相關選項
/dev/myvg/mylv  /mnt ext3    defaults   0   0


(2)啟動自動掛載:mount  -a



三.創建鏡像邏輯卷:

lvcreate -L 100M  -m1 -n lvname vgname /dev/sdb1 /dev/sdc1 /dev/sdb2
-m1:只生成一個單一鏡像,鏡像分別放在/dev/sdb1和/dev/sdc1上,鏡像日誌放在/dev/sdb2上.
-n:指定鏡像邏輯卷名


查看當前lvm中設備狀態:
    lvs -a -o +devices
    lvs


四.創建快照卷:(給已有的邏輯卷創建快照卷)

快照卷提供在特定瞬間的一個設備虛擬映像,當快照開始時,它復制一份對當前數據區域的改變,由於它優先執行這些改變,所以它可以重構當前設備的狀態。

lvcreate -L 50M   -n   mylv-snap   -s   -p  r    /dev/myvg/mylv    #創建快照卷
(在同一卷組中。)
-L:指定快照卷的大小
-s:創建快照卷
-n:指定快照名
-p:指定快照卷的類型,默認為rw

mount /dev/myvg/mylv#臨時掛載

移除快照卷:lvremove   /dev/myvg/mylv-snap
恢復快照卷:lvconvert --merge /dev/myvg/mylv-snap





五.擴展邏輯卷:

1.首先確保卷組中,有足夠的空間
    vgs   或者  vgdisplay
 
        
2. lvextend 擴展邏輯卷的物理邊界

lvextend -L 12G /dev/vgname/lvname   (擴展到12G)
lvextend -L +1G /dev/vgname/lvname    (增加1G)
lvextend -l +(塊個數) /dev/vgname/lvname

3.resize2fs  擴展邏輯卷的邏輯邊界
  resize2fs /PATH/TO/LV 5G  擴展邏輯邊界到5G,該值不能超過物理邊界
         resize2fs -p /PATH/TO/LV :-p表示擴展邏輯邊界跟物理邊界一樣大。

###若之前創建好文件系統,則要擴展文件系統:resize2fs  /dev/vgname/lvname
#### fsadm resize /dev/vgname/lvname


4.重新查看文件系統大小
df -h

resize2fs:調整ext文件系統的空間大小

搭配邏輯卷lv使用方法:resize2fs /PATH/TO/LV_NAME 3G 調整LV的邏輯邊界大小為3G



六.縮減邏輯卷lv:

註意:
    1、不能在線縮減,得先卸載;
    2、確保縮減後的空間大小依然能存儲原有的所有數據;
    3、在縮減之前應該先強行檢查文件,以確保文件系統處於一至性狀態;

步驟:
    1. 確保縮減後的空間大小依然能存儲原有的所有數據
        df -lh  

    2. 卸載需要縮減的lv
        umount  /mnt    
    
    3. 強行檢查文件系統
        e2fsck -f   /dev/myvg/mylv
            第一步: 檢查inode,塊,和大小
            第二步: 檢查目錄結構
            第三步: 檢查目錄連接性
            第四步: Checking reference counts
            第五步: 檢查簇概要信息
    4.縮減文件系統(邏輯邊界)
        resize2fs  /dev/myvg/mylv 2G      #調整邏輯卷的邏輯邊界大小為2G    

    5.縮減LV(物理邊界)
        lvreduce  -L  -1G  /dev/myvg/mylv    #縮減1G
        lvreduce -L 2G /dev/myvg/testlv  對邏輯卷的物理邊界縮減為2G
    
    6. 重新掛載,
        mount /dev/myvg/mylv  /mnt

本文出自 “hello world” 博客,請務必保留此出處http://nxyboy.blog.51cto.com/10511646/1942848

linux 中的邏輯卷