細述LVM

 前言:

    LVM(Logical Volume Manager)是基于內核的一種邏輯卷管理器,LVM適合于管理大存儲設備,并允許用戶動態調整文件系統大小。此外,LVM的快照功能可以幫助我們快速備份數據。LVM為我們提供了邏輯概念上的磁盤,使得文件系統不再關心底層物理磁盤的概念。

看圖識LVM

    

RJY6[NG2X]{LIBOO~LFJWNN.png

使用LVM創建邏輯卷需要我們提前了解以下幾個概念:

    PE:Physical Ex

        LVM默認使用4MB的PE塊,他是整個LVM最小的存儲單元,也就是說,我們的文件數據都是由寫入PE來處理的。簡單的說,這個PE就是有點像文件系統里面的block大小。

    PV:Physical Volume 物理卷

        物理卷是LVM的最底層概念,是LVM的邏輯存儲塊,物理卷與磁盤分區是邏輯的對應關系。LVM提供了命令工具可以將分區轉換為物理卷,通過組合物理卷可以生成卷組。

    VG:Volume Group 卷組

        卷組是LVM邏輯概念上的磁盤設備,通過將單個或多個物理卷組合成后生成卷組。卷組的大小取決于物理卷的容量以及個數。

    LV:Logical Volume 邏輯卷

        邏輯卷就是LVM邏輯意義上的分區,我們可以指定從卷組中提取多少容量來創建邏輯卷,最后對邏輯卷格式化并掛載使用。

 

PV常用命令: 

            pvcreate    #創建一個PV物理卷
            pvchange    #修改PV的屬性
            pvresize    #調整一個PV的大小
            pvremove    #刪除一個PV
            pvmove      #移動PE到指定物理卷
            pvscan      #搜索所有磁盤上的物理卷
            pvs         #顯示PV的簡要信息
            pvdisplay   #顯示PV的屬性信息

VG常用命令:

            vgcreate    #創建卷組
                -l:設置此卷組可容納的LV最大數,默認為255
                -p:設置此卷組包含PV的最大數,默認為255
                -s:設置此卷組PE大小,默認為4M
            vgextend   #擴展VG大小
            vgchange   #修改VG屬性信息
            vgreduce   #縮減VG大小
            vgremove   #刪除VG
            vgscan    #搜索所有磁盤上的卷組
            vgs      #顯示VG簡要信息
            vgdisplay  #顯示VG屬性信息
            vgck        #檢查VG元數據
LV常用命令:
            lvcreate    #創建LV分區
                -l:設置LV大小,以PE為單位
                -L:設置LV大小,以字節為單位
                -n:設置LV名稱
                -p:設置LV權限讀寫權限,默認為可讀可寫
                -s:設置一個快照卷,對一個已存在的LV做快照
            lvextend    #擴展LV大小
            lvreduce    #縮減LV大小
            lvchange    #修改LV屬性信息
                -ay:標記LV為可用狀態
                -an:標記LV為不可用狀態
            lvremove    #刪除LV
            lvscan      #搜索所有磁盤上的邏輯卷
            lvs         #顯示LV簡要信息
            lvdisplay   #顯示LV屬性信息

實戰演習:

[root@server ~]# fdisk -l | grep ^/de

/dev/sda1   *           1          64      512000   83  Linux

/dev/sda2              64        2611    20458496   8e  Linux LVM

/dev/sdb1               1          14      112423+  83  Linux

/dev/sdb2              15          80      530145   83  Linux

/dev/sdc1               1         654     5253223+  8e  Linux LVM

/dev/sdd1               1         654     5253223+  8e  Linux LVM

/dev/sde1               1         654     5253223+  8e  Linux LVM

創建PV:

[root@server ~]# pvcreate /dev/sd{c,d,e}1

  Physical volume "/dev/sdc1" successfully created

  Physical volume "/dev/sdd1" successfully created

  Physical volume "/dev/sde1" successfully created

[root@server ~]#

查看創建的PV

[root@server ~]# pvs            #查看PV的簡要信息

  PV         VG       Fmt  Attr PSize  PFree

  /dev/sda2  VolGroup lvm2 a--  19.51g    0 

  /dev/sdc1           lvm2 ---   5.01g 5.01g

  /dev/sdd1           lvm2 ---   5.01g 5.01g

  /dev/sde1           lvm2 ---   5.01g 5.01g

[root@server ~]#
[root@server ~]# pvdisplay             #查看PV詳細信息
  --- Physical volume ---  
  "/dev/sde1" is a new physical volume of "5.01 GiB"
  --- NEW Physical volume ---            #新PV
  PV Name               /dev/sde1            #物理卷名稱
  VG Name               
  PV Size               5.01 GiB                #物理卷大小
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               VREiVr-2Jr5-jNM8-EoKo-Agxw-oypN-kyUrXI
   
[root@server ~]#

 創建VG:

[root@server ~]# vgcreate -s 2M myvg /dev/sdc1 /dev/sdd1

  Volume group "myvg" successfully created

[root@server ~]#

查看VG:

 [root@server ~]# vgs

  VG       #PV #LV #SN Attr   VSize  VFree 

  VolGroup   1   2   0 wz--n- 19.51g     0 

  myvg       2   0   0 wz--n- 10.02g 10.02g        #新建的VG,名稱:myvg,大小10G

[root@server ~]#
[root@server ~]# vgdisplay 

  --- Volume group ---

  VG Name               myvg            #卷組名

  System ID             

  Format                lvm2

  Metadata Areas        2

  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                2

  Act PV                2

  VG Size               10.02 GiB        #卷組大小

  PE Size               2.00 MiB        #PE大小2M

  Total PE              5128

  Alloc PE / Size       0 / 0   

  Free  PE / Size       5128 / 10.02 GiB        #剩余容量

  VG UUID               W0FnIa-Z5Th-XRaM-EfcZ-HWeF-Jdee-jVTVyT

擴展myvg大小:

[root@server ~]# vgextend myvg /dev/sde1

  Volume group "myvg" successfully extended

縮減myvg大?。?/strong>

[root@server ~]# vgreduce myvg /dev/sde1

  Removed "/dev/sde1" from volume group "myvg"

 創建LV:

[root@server ~]# lvcreate -L +6G -n mylv myvg                創建大小為6G,名稱為mylv的邏輯卷!卷組為myvg
  Logical volume "mylv" created
[root@server ~]# lvs
  LV      VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root VolGroup -wi-ao---- 17.57g                                                    
  lv_swap VolGroup -wi-ao----  1.94g                                                    
  mylv    myvg     -wi-a-----  6.00g                           #大小6G                         
[root@server ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/myvg/mylv        #邏輯卷mylv的路徑
  LV Name                mylv                        #邏輯卷名稱mylv
  VG Name                myvg                      #基于myvg卷組
  LV UUID                EXKn5D-lVzU-JdlO-GYoo-CYpz-y20L-xn5cI5
  LV Write Access        read/write
  LV Creation host, time server.lili.com, 2015-06-10 17:47:02 +0800
  LV Status              available
  # open                 0
  LV Size                6.00 GiB
  Current LE             3072
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
 
[root@server ~]# mkfs.ext4 /dev/myvg/mylv        #格式化LV
 
[root@server ~]# mkdir /data        #創建掛載路徑
[root@server ~]# mount /dev/myvg/mylv /data/        #掛載mylv
 
[root@server ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  3.6G   13G  23% /
tmpfs                 491M  228K  491M   1% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/sr0              4.4G  4.4G     0 100% /media/CentOS_6.6_Final
/dev/mapper/myvg-mylv
                      5.8G   12M  5.5G   1% /data        #大小為6G的/data

這樣我們就成功的創建了我們的邏輯卷!可是隨著業務的增加!data目錄不夠用了,我們就可以擴展mylv的大小,可在線擴展。

擴展mylv: 

[root@server ~]# lvextend -L +1G -n /dev/myvg/mylv         #擴展物理邊界增加1G
  Size of logical volume myvg/mylv changed from 6.00 GiB (3072 extents) to 7.00 GiB (3584 extents).
  Logical volume mylv successfully resized
 [root@server ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  3.6G   13G  23% /
tmpfs                 491M  228K  491M   1% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/sr0              4.4G  4.4G     0 100% /media/CentOS_6.6_Final
/dev/mapper/myvg-mylv
                      5.8G   12M  5.5G   1% /data            #仍然為6G        #邏輯卷沒增加
[root@server ~]# resize2fs /dev/myvg/mylv         #擴展邏輯邊界。        注:只對ext文件系統使用。這里也可以指定擴展邏輯邊界大小,默認物理邊界大小。
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /data; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/mylv to 1835008 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 1835008 blocks long.
[root@server ~]# lvs
  LV      VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root VolGroup -wi-ao---- 17.57g                                                    
  lv_swap VolGroup -wi-ao----  1.94g                                                    
  mylv    myvg     -wi-a-----  7.00g           
 [root@server ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  3.6G   13G  23% /
tmpfs                 491M  228K  491M   1% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/sr0              4.4G  4.4G     0 100% /media/CentOS_6.6_Final
/dev/mapper/myvg-mylv
                      6.8G   14M  6.5G   1% /data        #大小為7G了

縮減:

縮減的順序應該與創建時的順序相反,也就是卸載文件系統、刪除邏輯卷、刪除卷組、刪除物理卷??s減很危險,不到萬不得已千萬別縮減??s減需離線。

縮減步驟:

1、先確定縮減后的目標大小;并確保對應的每一步邏輯卷大小中有足夠的空間可容納原有所有數據;

2、先制裁文件系統,并要執行強制檢測

3、縮減邏輯邊界

4、縮減物理邊界

[root@server ~]# umount /data/
[root@server ~]# e2fsck -f /dev/myvg/mylv        # 強制檢測
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/myvg/mylv: 11/458752 files (0.0% non-contiguous), 65023/1835008 blocks
 
[root@server ~]# resize2fs /dev/myvg/mylv 2G        # 縮減邏輯邊界至2G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv to 524288 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 524288 blocks long.
 
[root@server ~]# lvreduce -L 2G /dev/myvg/mylv         # 縮減物理邊界至2G
  WARNING: Reducing active logical volume to 2.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y            # 確認,后果自負
  Size of logical volume myvg/mylv changed from 7.00 GiB (3584 extents) to 4.00 GiB (2048 extents).
  Logical volume mylv successfully resized
[root@server ~]# mount /dev/myvg/mylv /data/        # 重新掛載
[root@server ~]# df -lh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  3.6G   13G  23% /
tmpfs                 491M  228K  491M   1% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/sr0              4.4G  4.4G     0 100% /media/CentOS_6.6_Final
/dev/mapper/myvg-mylv
                      1.9G  9.0M  1.8G   1% /data        # 2G大小

 

創建快照卷:

    快照卷是對邏輯卷進行的,因此必須跟目標邏輯卷在同一個卷組中,無須指明卷組。需確保剩余卷組可容納快照。

lvcreate
-L :大小
-n: 名稱
-s:快照
-p r:只讀
[root@server ~]# fuser /data/        # 創建快照卷時盡量避免有訪問時創建快照!

/data/:               8640c          # 有訪問
[root@server ~]# mount -o remount,ro /dev/myvg/mylv /data/ && lvcreate -L 1G -n mylv-snap -p r -s /dev/myvg/mylv && mount -o remount,rw /dev/myvg/mylv /data/       
# 先以只讀方式掛載邏輯卷&&然后創建快照&&然后在以讀寫方式掛載邏輯卷
  Logical volume "mylv-snap" created
[root@server ~]# mkdir /snap        # 創建掛載點
[root@server ~]# mount /dev/myvg/mylv-snap /snap/        # 掛載快照
mount: block device /dev/mapper/myvg-mylv--snap is write-protected, mounting read-only    #只讀

卸載快照卷:

[root@server ~]# umount /snap/        # 卸載

[root@server ~]# lvremove /dev/myvg/mylv-snap     # 移除快照

Do you really want to remove active logical volume mylv-snap? [y/n]: y    # 確認

  Logical volume "mylv-snap" successfully removed

 

好了!以上皆為個人學習總結!如有錯誤和遺落,還望指點??!

原創文章,作者:水蒸氣,如若轉載,請注明出處:http://www.www58058.com/5210

(0)
水蒸氣水蒸氣
上一篇 2015-06-15 16:20
下一篇 2015-06-15 16:22

相關推薦

  • linux文件系統(ext2\ext3\ext4,xfs,btrfs…)的介紹[轉載]

    ext2\ext3\ext4,xfs,btrfs 都是針對服務器系統越來越高效實用的日志文件系統 日志文件系統:    日志文件系統是一種即使在斷電或者是操作系統崩潰的情況下保證文件系統一致性的途徑。XFS對文件系統元數據提供了日志支持。當文件系統更新時,元數據會在實際的磁盤塊被更新之前順序寫入日志。XFS的日志被保存在磁盤塊的…

    Linux干貨 2017-01-31
  • linux命令格式和常用命令

    Linxu命令使用格式 ~]#COMMAND OPTIONS ARGUMENTS CMMMAND:發起一命令:請求內核將某個二進制程序運行為一個進程; OPTIONS:指定命令的運行特性; 短選項:-C, 例如-l, -d 注意:有些命令的選項沒有-; 如果同一命令同時使用多個短選項,多數可合并:-l -d = -ld 長選項:–word, 例如…

    Linux干貨 2018-03-04
  • 學習linux第四天

    Linux學習第4天   Linux內部命令和外部命令    內部命令:實際上是shell程序的一部分,其中包含的是一些比較簡單的linux系統命令,這些命令由shell程序識別并在shell程序內部完成運行,通常在linux系統加載運行時shell就被加載并駐留在系統內存中。內部命令是寫在bashy源碼里面的,其執行速度比外部…

    Linux干貨 2016-10-29
  • awk大法

    awk awk概念 一款用于數據流的文本處理工具,它將文件作為記錄序列處理。在一般情況下,文件內容的每行都是一個記錄。每行內容都會被分割成一系列的域,因此,我們可以認為一行的第一個詞為第一個域,第二個詞為第二個,以此類推。AWK程序是由一些處理特定模式的語句塊構成的。AWK一次可以讀取一個輸入行。對每個輸入行,AWK解釋器會判斷它是否符合程序中出現的各個模式…

    Linux干貨 2016-12-04
  • linux發展史

    linux發展史簡介: 20世紀60年代,MIT開發分時操作系統(Compatible TIme-Sharing System),支持30臺終端訪問主機;     ~主機負責運算,而終端負責輸入輸出; 1965年,Bell實驗室、MIT、GE(通用電氣公司)準備開發Multics系統,為了同時支持3…

    Linux干貨 2016-10-14
  • 網絡班N22期第六周博客作業

    請詳細總結vim編輯器的使用并完成以下練習題 打開文件: ~]# vim [options] [file ..]       +#:打開文件后,直接讓光標處于第#行       +/PART…

    Linux干貨 2016-09-26
欧美性久久久久