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組成??梢栽诰斫M上創建一個或多個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
下一篇 2016-06-22

相關推薦

  • 馬哥教育N22期第五周作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell; [root@localhost ~]# egrep "^root|fedora|user1" /etc/passwd root:x:0:0:root:/root:/bin/bash fedora:x:1002:1002::/…

    Linux干貨 2016-09-15
  • 控制字體顏色的輸出echo[轉載]

    http://onlyzq.blog.51cto.com/1228/546459 echo顯示帶顏色,需要使用參數-e格式如下:echo -e "\033[字背景顏色;文字顏色m字符串\033[0m"例如: echo -e "\033[41;37m TonyZhang \033[0m"其中41的位置…

    Linux干貨 2017-02-01
  • 重構-改善既有代碼的設計:編寫代碼22宗罪(三)

    1 Duplicated  Code重復代碼        不同的地方出現相同的程序結構:         如果你在一個以上的地點看到相同的程序結構,那么可以肯定:設法將它們和而為一,程序會變得更好。最常見的“重復代碼”就是一個類內的兩個函數含有相同的表達式。另一種常見…

    Linux干貨 2015-04-07
  • 配置使用基于mysql存儲rsyslog日志信息

    配置使用基于mysql存儲rsyslog日志信息   日志對于我們來說,肯定不會陌生。每個系統應用,只要有人訪問,每時每刻都會產生大量的日志,用來記錄服務器應用的運行信息。以便于我們在服務有異常時進行查看,或是從日志記錄中提取出應用系統的運行信息。某些電商Web網站甚至會利用日志記錄去對用戶的購買行為作分析,以便更好的服務于客戶。 &nb…

    Linux干貨 2016-09-05
  • LAMP運行環境搭建及部署php程序軟件

    前言     Linux+Apache+MySQL+PHP是大多數web服務器的運行環境,能熟練配置此運行環境是每個運維的必備基本技能,本文以安裝MySQL管理工具PHPmyadmin以及博客軟件wordpress為例,演示編譯安裝LAMP運行環境的過程。 一、實驗拓撲圖 二、安裝步驟 2.1 編譯安裝Apache h…

    2015-11-26
  • Linux文件管理命令詳解–cp,mv,rm

    在Linux系統里平時需要對目錄文件做一些管理操作,其中最基本的有cp,mv,rm等命令: cp命令:copy 復制   其中包含源文件,目標文件: copy分為單源復制和多源復制,詳解如下:               單源復制:cp [option]…[-T] S…

    Linux干貨 2016-11-06
欧美性久久久久