LVM的創建與管理

一、基本概念

    1、LVM是邏輯盤卷管理(LogicalVolumeManager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。

    2、why:通常在安裝Linux系統的時候對磁盤進行一盤的分區,一旦日后分區或整個磁盤的空間不夠用,就難以再擴容。但是使用lvm來管理磁盤的分區,由于是建立在磁盤和分區上的一個邏輯層,可以靈活管理存儲空間,而且可以跨硬盤進行管理存儲空間,而且不會對原有的數據文件造成損害。

    3、lvm的基本術語

       

        PV:Physical Volume,指磁盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。

        PE:Physical Extent,每一個物理卷PV被劃分為稱為PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認為4MB。所以物理卷(PV)由大小等同的基本單元PE組成。

        VG:Volume Group,類似于非LVM系統中的物理磁盤,其由一個或多個物理卷PV組成。可以在卷組上創建一個或多個LV(邏輯卷)。

        LV:Logical Volume,類似于非LVM系統中的磁盤分區,邏輯卷建立在卷組VG之上。在邏輯卷LV之上可以建立文件系統(比如/home或者/usr等)。

        LE:Logical Extent,邏輯卷LV也被劃分為可被尋址的基本單位,稱為LE。在同一個卷組中,LE的大小和PE是相同的,并且一一對應。

        上述的基本關系如下圖

        LVM的創建與管理blob.png

二、LVM的建立(配置LVM的流程:fdisk創建分區及修改ID為8e–>把分區轉換為PV—>創建VG—>創建LV—>格式華LV—>mount文件系統

    1、常用工具

        

    pv管理工具:
	pvs:簡要pv信息顯示
	pvdisplay:顯示pv的詳細信息
	pvcreate /dev/DEVICE: 創建pv
		-v:顯示過程
		-f:強制,
		-uuid:直接指定UUID

    vg管理工具:
	vgs
	vgdisplay
	vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...][-s #[kKmMgGtTpPeE]]指定PE大小
	vgextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
	vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
		先做pvmove
	vgremove

    lv管理工具:
	lvs
	lvdisplay
	lvcreate -L #[mMgGtT] -n NAME VolumeGroup
	lvremove /dev/VG_NAME/LV_NAME

    擴展邏輯卷:
	lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
	resize2fs /dev/VG_NAME/LV_NAME
	df -lh
		
    縮減邏輯卷:
	umount /dev/VG_NAME/LV_NAME
	e2fsck -f /dev/VG_NAME/LV_NAME
	resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
	lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
	mount

    快照:snapshot
	lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name
	-p, --permission {r|rw}
	-n, --name LogicalVolume{Name|Path}
	-s, --snapshot OriginalLogicalVolume{Name|Path}



    2、lvm的構建過程

         先給系統添加硬盤并分區

[root@localhost ~]# fdisk /dev/sdc

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (mforhelp): tSelected partition1Hex code (typeLtolist codes): 8e        //需要把分區的id修改為Linux LVMChangedsystemtypeofpartition1to8e (Linux LVM)

Command (mforhelp): pDisk /dev/sdc: 10.7 GB, 10737418240bytes255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of16065 * 512 = 8225280bytesSector size (logical/physical): 512bytes / 512bytesI/O size (minimum/optimal): 512bytes / 512bytesDisk identifier: 0x16f72b9f

   Device Boot      StartEnd      Blocks   IdSystem/dev/sdc1               11305104823818e  Linux LVM


        1)、將磁盤設定為PV           

[root@localhost ~]# pvcreate /dev/sda5
  Physical volume "/dev/sda5" successfully created
[root@localhost ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
[root@localhost ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created
[root@localhost ~]# pvs
  PV         VG       Fmt  Attr PSize  PFree 
  /dev/sda2  VolGroup lvm2 a--  58.59g     0 
  /dev/sda5           lvm2 ---  10.00g 10.00g
  /dev/sdb1           lvm2 ---  10.00g 10.00g
  /dev/sdc1           lvm2 ---  10.00g 10.00g
[root@localhost ~]# pvdisplay /dev/sdb1"/dev/sdb1" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0                       
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               GGKTNl-Yi0I-5RJX-WiHJ-iQSe-tvzO-vqRo8N

        2)、建立VG

[root@localhost ~]# vgcreate -s 6M myvg /dev/sda5 /dev/sd[b-c]1        //創建一個名為myvg的VG,并且設定PE大小為6M
  Volume group "myvg" successfully created
[root@localhost ~]# vgs
  VG       #PV #LV #SN Attr   VSize  VFree 
  VolGroup   130 wz--n- 58.59g     0 
  myvg       300 wz--n- 29.98g 29.98g
[root@localhost ~]# vgdisplay myvg
  --- Volume group ---
  VG Name               myvg
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               29.98 GiB
  PE Size               6.00 MiB
  Total PE              5117
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5117 / 29.98 GiB
  VG UUID               WtwVcH-Ny7F-kAcN-MI5H-0AgA-b6rF-fUiuJB
   
[root@localhost ~]# pvdisplay /dev/sda5
  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               myvg                //顯示此PE已經加入到myvg卷組中
  PV Size               10.00 GiB / not usable 2.54 MiB
  Allocatable           yes 
  PE Size               6.00 MiB            //PE大小由VG創建時確定,所以現在才有顯示大小
  Total PE              1707
  Free PE               1707
  Allocated PE          0
  PV UUID               flJPpR-s9VI-OO5N-iSOm-K1nN-thOl-XknRjP


        3)、建立LV

[root@localhost ~]# lvcreate -L 10G -n mylv myvg            //創建一個名為mylv 10G大小的LV
  Rounding up size to full physical extent 10.00 GiB
  Logical volume "mylv" created.
[root@localhost ~]# lvs         //顯示LV的簡要信息
  LV       VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  LogVol00 VolGroup -wi-ao---- 39.06g                                                    
  LogVol01 VolGroup -wi-ao----  9.76g                                                    
  LogVol02 VolGroup -wi-ao----  9.77g                                                    
  mylv     myvg     -wi-a----- 10.00g                                                    
[root@localhost ~]# lvdisplay /dev/myvg/mylv 
  --- Logical volume ---
  LV Path                /dev/myvg/mylv
  LV Name                mylv
  VG Name                myvg
  LV UUID                RFCRTA-hd1C-6DPh-tVdK-EVy7-mF47-0qfTJh
  LV Write Access        read/write                 //默認為讀寫模式
  LV Creation host, time localhost.localdomain, 2016-06-1117:42:47 +0800
  LV Status              available  # open                 0
  LV Size                10.00 GiB                  //10G大小
  Current LE             1707
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

        4)、格式化LV并掛載

[root@localhost ~]# mke2fs -t ext4 -L "myLVM" /dev/myvg/mylv mke2fs 1.41.12 (17-May-2010)
警告: 512 塊未使用.

文件系統標簽=myLVM
操作系統:Linux塊大小=4096 (log=2)
分塊大小=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks656640 inodes, 2621440 blocks131097 blocks (5.00%) reserved for the super user
第一個數據塊=0Maximum filesystem blocks=268435456080block groups32768 blocks per group, 32768 fragments per group8208 inodes per groupSuperblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632正在寫入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 26 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@localhost ~]# blkid /dev/myvg/mylv 
/dev/myvg/mylv: LABEL="myLVM"UUID="384e1993-9517-423a-b69b-26bbad53c3d3"TYPE="ext4" 

[root@localhost ~]# mount /dev/myvg/mylv /backup/
[root@localhost ~]# mount | grep "mylv"/dev/mapper/myvg-mylv on /backup type ext4 (rw)


    3、lvm的擴展

   [root@localhost ~]# lvextend -L +5G /dev/myvg/mylv   //給mylv增加5G的空間大小
  Rounding size to boundary between physical extents: 5.00 GiB
  Size of logical volume myvg/mylv changed from 10.00 GiB (1707 extents) to 15.01 GiB (2561 extents).
  Logical volume mylv successfully resized
[root@localhost ~]# lvdisplay /dev/myvg/mylv 
  --- Logical volume ---
  LV Path                /dev/myvg/mylv
  LV Name                mylv
  VG Name                myvg
  LV UUID                RFCRTA-hd1C-6DPh-tVdK-EVy7-mF47-0qfTJh
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-06-1117:42:47 +0800
  LV Status              available  # open                 1
  LV Size                15.01 GiB          //已增加了5G的大小
  Current LE             2561
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2[root@localhost ~]# resize2fs /dev/myvg/mylv     //最后還需要重新調整對應的文件系統的大小resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /backup; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1Performing an on-line resize of /dev/myvg/mylv to 3933696 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 3933696 blocks long.

[root@localhost ~]# df -lh /dev/myvg/mylv Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/myvg-mylv                       15G   25M   14G   1% /backup         //此時顯示文件系統大小也也擴容后大小

    4、LVM的縮減

[root@localhost ~]# umount /backup/             //①先卸載

[root@localhost ~]# e2fsck -f /dev/myvg/mylv    //②強制檢測
e2fsck 1.41.12 (17-May-2010)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
myLVM: 12/993168 files (0.0% non-contiguous), 101500/3933696 blocks

[root@localhost ~]# resize2fs /dev/myvg/mylv 5G         //③先縮減文件系統的大小到5Gresize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv to1310720 (4k) blocks.
The filesystem on /dev/myvg/mylv isnow1310720 blocks long.

[root@localhost ~]# lvreduce -L5G /dev/myvg/mylv  //④再縮減LV到5G大小
  Rounding sizeto boundary betweenphysical extents: 5.00 GiB  WARNING: Reducing active logical volume to5.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce mylv? [y/n]: y  Sizeoflogical volume myvg/mylv changedfrom15.01 GiB (2561 extents) to5.00 GiB (854 extents).  Logical volume mylv successfully resized
  
[root@localhost ~]# lvdisplay /dev/myvg/mylv 
  --- Logical volume ---
  LV Path                /dev/myvg/mylv
  LV Name                mylv
  VG Name                myvg
  LV UUID                RFCRTA-hd1C-6DPh-tVdK-EVy7-mF47-0qfTJh
  LV Write Accessread/write
  LV Creation host, time localhost.localdomain, 2016-06-1117:42:47 +0800
  LV Status              available
  # open0
  LV Size5.00 GiB           //此時以顯示為縮減后的大小  Current LE             854
  Segments               1
  Allocation             inherit  Read ahead sectors     auto
  - currently setto256Block device           253:2
   [root@localhost ~]# mount /dev/myvg/mylv /backup/       //最后重新掛載
[root@localhost ~]# df -lh /dev/myvg/mylv 
Filesystem            Size  Used Avail Use% Mounted on/dev/mapper/myvg-mylv                      4.8G20M4.6G1% /backup     //文件系統此時也為5G大小


    4、快照功能的實現

[root@localhost ~]# lvcreate -p r -s -L 512M -n snmylv /dev/myvg/mylv       //創建一個大小為512M 只有讀權限的快照卷
  Rounding up size to full physical extent 516.00 MiB
  Logical volume "snmylv" created.
[root@localhost ~]# ll /dev/myvg總用量 0lrwxrwxrwx. 1 root root 7 6月  11 18:51 mylv -> ../dm-2lrwxrwxrwx. 1 root root 7 6月  11 18:51 snaplv -> ../dm-6lrwxrwxrwx. 1 root root 7 6月  11 18:51 snmylv -> ../dm-8[root@localhost ~]# lvdisplay /dev/myvg/snmylv 
  --- Logical volume ---
  LV Path                /dev/myvg/snmylv
  LV Name                snmylv
  VG Name                myvg
  LV UUID                QG7ORH-YRyE-RTFA-JRCe-WhGk-mXAL-rjo0sl
  LV Write Access        read only          //只讀權限
  LV Creation host, time localhost.localdomain, 2016-06-11 18:51:15 +0800
  LV snapshot status     active destination for mylv
  LV Status              available  # open                 0
  LV Size                5.00 GiB           //原卷大小
  Current LE             854
  COW-table size         516.00 MiB         //快照卷大小
  COW-table LE           86
  Allocated to snapshot  0.00%
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:8



原創文章,作者:mouse015110,如若轉載,請注明出處:http://www.www58058.com/18082

(0)
mouse015110mouse015110
上一篇 2016-06-22 15:48
下一篇 2016-06-22 15:49

相關推薦

  • varnish動靜分離

    http://blog.51cto.com/sonlich/2060785

    2018-01-14
  • 馬哥教育網絡班第19期+第8周課程練習

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋:一種網路裝置,負責網路橋接,將網絡的多個網段在數據鏈路層連接起來。 集線器:將多條以太網線或光纖集合連接在同一段物理介質下的裝置。工作在物理層。 二層交換機:工作在數據鏈路層,交換機內部的CPU會在每個端口成功連接時,通過將MAC地址和端口對應,形成一張MAC表。在今后的通…

    Linux干貨 2016-08-22
  • man的用法

    man的使用 man命令是Linux下的幫助指令,通過man指令可以查看Linux中的指令幫助、配置文件幫助和編程幫助等信息。 語法 man(選項)(參數) 選項 -a:在所有的man幫助手冊中搜索; -f:等價于whatis指令,顯示給定關鍵字的簡短描述信息; -P:指定內容時使用分頁程序; -M:指定man手冊搜索的路徑。 參數 數字:指定從哪本man手…

    Linux干貨 2018-03-04
  • 馬哥教育網絡班21期-第七周課程練習

    1、創建一個10G分區,并格式為ext4文件系統;     #fdisk /dev/sdb (n;p;1;+10G;w)     #partx -a -n 1 /dev/sdb     (1…

    Linux干貨 2016-08-22
  • 正則表達式和變量寫腳本

    #!/bin/bash 檢查系統所有用戶的shell是否為bash? 注釋:用grep查找是否有此類用戶,如果有則為真,則$?必然為0;顯示的passwd結果對我們沒意義,所以重定向到空。  grep “\bbash\b$” /etc/passwd &> /dev/null  A=`echo $?` …

    Linux干貨 2017-04-16
  • Homework Week-3 用戶管理

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。  who | cut -f 1 -d \ | uniq “\”后跟一個空格字符 2、取出最后登錄到當前系統的用戶的相關信息。  who | tail…

    Linux干貨 2016-08-24
欧美性久久久久