8.Linux的LVM使用詳解

來源:互聯網
上載者:User

標籤:lvm   快照   動態擴容   縮減   邏輯卷管理   lv   

                   8.Linux的LVM使用詳解

  1. 命令概覽:所使用的命令(#代表是數字)
    pvcreate /dev/sd[xx]
    vgcreate -s # vgname /dev/sd[]
    -s 指定PE的大小   預設大小為4M
    vgextend vgname /dev/sd[xx]
    lvcreate -n lvname -L # /dev/vgname
    擴容
    lvs
    lvextend -L # /dev/vgname/lvname
    resize2fs /dev/vgname/lvname
    lvs
    縮減
    umount /dev/vgname/lvname
    e2fsck /dev/vgname/lvname
    resize2fs /dev/vgname/lvname #
    lvreduce -L # /dev/vgname/lvname
    mount
    快照
    lvcreate -L # -s -n snapshot /dev/vgname/lvname
    卸載邏輯卷
    umount /dev/vgname/lvname
    lvremove /dev/vgname/lvname
    vgremove /dev/vgname
    pvremove /dev/sd[xx]

  2. LVM的使用

    LVM(Logical Volume Manager)叫做邏輯卷管理器,有兩個版本,早期是LVM1(現在很少使用了),LVM2。

    PV (Physical Volume)物理卷,在分區時需要調整系統 ID為8e(LVM的標識符),使用pvcreate來建立物理卷。

    VG (Volume Group)卷組,是將一個或多個PV組合成一個VG,可以通過vgcreate來實現。

    LV (Logical Volume)邏輯卷,將VG劃分成一個或多個LV,可以通過lvcreate來實現。

    LVM2使用dm模組來實現將一個或多個底層塊裝置群組織成一個邏輯裝置的工具。它能夠將一個或多個底層塊裝置從某種意義上來映射成一個邏輯裝置,通過在其上面附加一個邏輯層使得上層看起來像一個裝置一樣,而且在其之上,還可以再劃分邏輯分區。將底層的塊裝置(VG)進一步分隔成了一個一個可以儲存資料空間的塊(PE),這種塊也稱為PE(Physical Extend),再將VG上多個PE組合成一個或多個

LV。也就是說LV的大小是由PE的個數決定的,LVM預設使用4M的PE塊,而LVM的VG最多僅能含有65534個PE,因此預設的LVM VG會有4M*65534(1024M/G)=256G,它是整個LVM最小的儲存塊,也就是說,檔案
資料都是由寫入PE來處理的。以下就是LVM的簡單架構:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/34/wKiom1Sr2Yjweji8AAI4WXREEzY908.jpg" title="QQ20150106204705.png" alt="wKiom1Sr2Yjweji8AAI4WXREEzY908.jpg" />

     在資料寫入LV時,LVM有兩種實現方式:
     a.線性模式(liner)  就是把其中一塊硬碟都使用完後,才使用另外一塊硬碟
     b.交錯模式(triped) 把要儲存的資料分塊,第一塊寫入到LV中的第一個硬碟,第二塊寫入到LV
中的第二塊硬碟如此這樣,依次儲存,可以提升讀寫效能,但是注意此時只要出現一個硬碟損壞,那麼資料都會丟失,如果要提升讀寫效能還是使用RAID更佳。

     LVM還可以實現動態調整容量,當空間不足時,可線上添加容量;當容量過大,也可以縮減容量。而且還提供了快照功能,能方便的實現備份。下面就來詳細講解他們的實現過程。


3.LVM的使用

    實際上LVM使用的裝置是放置到/dev/mapper/目錄下的

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/31/wKioL1Sr4jHDvPy6AAINCe-vbhA655.jpg" title="QQ20150106212043.png" alt="wKioL1Sr4jHDvPy6AAINCe-vbhA655.jpg" />   

    PV,VG,LV他們各自都有一組命令

輸入pv按兩次tab鍵就可以看到以pv開頭的命令

[[email protected]_basic scripts]#pv
pvchange   pvck       pvcreate   pvdisplay  pvmove     pvremove   pvresize   pvs        pvscan  

其他vg,lv也是一樣

[[email protected]_basic scripts]#vg
vgcfgbackup    vgck           vgdisplay      vgimport       vgmknodes      vgrename       vgsplit        
vgcfgrestore   vgconvert      vgexport       vgimportclone  vgreduce       vgs            
vgchange       vgcreate       vgextend       vgmerge        vgremove       vgscan         
[[email protected]_basic scripts]#lv
lvchange     lvdisplay    lvmchange    lvmdump      lvmsar       lvrename     lvscan       
lvconvert    lvextend     lvmconf      lvmetad      lvreduce     lvresize     
lvcreate     lvm          lvmdiskscan  lvmsadc      lvremove     lvs

這裡我們就說明使用pvcreate,vgcreata的格式

建立物理卷

pvcreate — initialize a disk or partition for use by LVM  初始化磁碟或分區使用LVM

pvcreate /dev/sd[a-z]|/dev/sd[a-z][1-9] ... 可跟多個磁碟或分區,注意此處使用的磁碟分割應該調整其系統標識符為8e,通過fdisk命令

建立卷組

vgcreate — create a volume group  建立一個卷組

vgcreate [-s PESIZE(pe的大小)]  VolumeGroupName(卷組的名字) PhysicalDevicePath [PhysicalDevicePath...](指定剛建立的物理卷)

-s, --physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE]
   Sets  the physical extent size on physical volumes of this volume group.

建立邏輯卷

lvcreate - create a logical volume in an existing volume group

lvcreate -n lvname -L # /dev/vgname

 -n, --name LogicalVolume{Name|Path}
     Sets the name for the new logical volume.  設定這個邏輯卷名

-L, --size LogicalVolumeSize[bBsSkKmMgGtTpPeE] 指定邏輯卷的大小,單位可以是K,M,G,T等
     Gives  the  size  to allocate for the new logical volume.  A size suffix of B for bytes, S for sectors as 512 bytes, K for kilobytes, M for megabytes, G for gigabytes, T  for  terabytes,  Pfor petabytes or E for exabytes is optional.
    Default unit is megabytes. 預設單位

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/58/31/wKioL1Sr6Dvwj5PFAASCDhS_8Kk040.jpg" title="QQ20150106214636.png" alt="wKioL1Sr6Dvwj5PFAASCDhS_8Kk040.jpg" />

擴充邏輯卷,需要先擴充物理卷再擴充邏輯卷,可線上擴容

如何擴充邏輯卷:
a、先確定擴充的目標大小;並確保對應的卷組中有足夠的空閑空間可用;
          

b、擴充物理邊界  僅能在當前卷組中進行擴充
lvextend -L # /dev/vgname/lvname


c、擴充邏輯邊界

resize2fs  /dev/vgname/lvname

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/35/wKiom1Sr6Z7QJJl-AAOuIE1X-_I051.jpg" title="QQ20150106215533.png" alt="wKiom1Sr6Z7QJJl-AAOuIE1X-_I051.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/58/31/wKioL1Sr68HAThjAAAfZWdIv35w648.jpg" title="QQ20150106220118.png" alt="wKioL1Sr68HAThjAAAfZWdIv35w648.jpg" />

[[email protected]_basic test]#df -hP /mnt/test
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/vg_lvm-test  4.9G  6.6M  4.7G   1% /mnt/test  擴充成功
[[email protected]_basic test]#du -sh /mnt/test
2.6M    /mnt/test    擴充後內容為改變

縮減邏輯卷,需要先縮減邏輯卷在縮減物理卷

縮減很危險!!!!
縮減需要離線
a、先確定縮減後的目標大小;並確保對應的目標邏輯卷大小中有足夠的空間可容納原有所有資料;
b、先卸載檔案系統,並要執行強制檢測
  e2fsck -f
c、縮減邏輯邊界
  resize2fs DEVICE #
  [[email protected]_basic ~]#resize2fs -help
  resize2fs 1.41.12 (17-May-2010)
  Usage: resize2fs [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]
d、縮減物理邊界
   lvreduce -L # /dev/vg_xx/xxx

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/35/wKiom1Sr7OCik2TAAATzhcMJr5I332.jpg" title="QQ20150106220905.png" alt="wKiom1Sr7OCik2TAAATzhcMJr5I332.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/58/35/wKiom1Sr7V-TXlZ2AAL8cinA82Q949.jpg" title="QQ20150106221146.png" alt="wKiom1Sr7V-TXlZ2AAL8cinA82Q949.jpg" />

建立快照卷:
  lvcreate
    -L   #指定快照卷大小
    -n   指定快照卷名字
    -s 指定快照卷
    -p r 唯讀

    注意:快照卷是對某邏輯卷進行的,因此必須跟目標邏輯卷在同一個卷組中;無須指明卷組;
它只備份又被改動的資料,檔案系統內沒有被更改的資料依舊保持在原本的區塊內,但是LVM快照
功能會知道那些資料放置在哪裡,因此“快照”當時的檔案系統就得以“備份”下來,且快照所佔用的
容量又非常小。       
由於快照區與原本的LV共用很多PE區塊,因此快照區與被快照的LV必須要在同一個VG上面。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/35/wKiom1Sr7qaSaBXoAAPrJx2AVDE307.jpg" title="QQ20150106221647.png" alt="wKiom1Sr7qaSaBXoAAPrJx2AVDE307.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/58/35/wKiom1Sr7x2xkMfZAARsyFnJr1g754.jpg" title="QQ20150106221902.png" alt="wKiom1Sr7x2xkMfZAARsyFnJr1g754.jpg" />

 LV snapshot status     active destination for test
  LV Status              available
  # open                 1
  LV Size                2.00 GiB
  Current LE             64
  COW-table size         512.00 MiB
  COW-table LE           16
  Allocated to snapshot  0.07%
  快照區已經被使用了0.07%,因為原資料改變了
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:5


利用快照區恢複原系統
複原的系統資料量不能夠高於快照區所能負載的實際容量。由於未經處理資料會被
移到快照區,如果快照區不夠大,若未經處理資料被改動的實際資料量比快照區大,
那麼快照區當然容納不了,這時候快照功能會失效。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/58/35/wKiom1Sr78KT_XGvAAQqdHTeZiA499.jpg" title="QQ20150106222145.png" alt="wKiom1Sr78KT_XGvAAQqdHTeZiA499.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/35/wKiom1Sr8GfQt868AARWmU5i-4M248.jpg" title="QQ20150106222434.png" alt="wKiom1Sr8GfQt868AARWmU5i-4M248.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/58/35/wKiom1Sr8K2CvPi_AANCkZZKgrU182.jpg" title="QQ20150106222548.png" alt="wKiom1Sr8K2CvPi_AANCkZZKgrU182.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/58/35/wKiom1Sr8aCR9gIvAAYC5xOx3Hc755.jpg" title="QQ20150106222953.png" alt="wKiom1Sr8aCR9gIvAAYC5xOx3Hc755.jpg" />


本文出自 “快樂就好” 部落格,請務必保留此出處http://wdllife.blog.51cto.com/6615958/1599979

8.Linux的LVM使用詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.