Lvm基本應用,擴展及縮減實現

什么是LVM


LVM是Logical Volume Manager的簡寫。其是Linux環境下對磁盤分區進行管理的一種機制。LVM由Heinz Mauelshagen在Linux 2.4內核上實現。其主要作用是在不損壞磁盤數據的情況下對磁盤空間進行增加,縮減。LVM的做法是將幾塊物理硬盤通過軟件的方式組合成一塊空間相對大的Volume Group,簡稱VG,然后將這塊大磁盤通過Physical Extend組成可以使用的分區Logical Volume,簡稱LV。將LV格式化之后掛載既能使用

 

LVM的幾個名詞介紹


    PV:Physical Volume,物理卷

    PEPhysical Extend,物理塊

    VGVolume Group卷組

    LVLogical Volume,邏輯卷

 

LVM常用命令介紹

 

    PV常用命令:

        pvcreate [device]創建PV

        pvs顯示pv的簡要信息

        pvdisplay /dev/sd[abcd]#:顯示PV的詳細信息。如果不指定設備,則顯示所有PV詳細信息

        pvremove /dev/sd[abcd]#:刪除PV


    VG常用命令:

        vgcreate [–s #[mMgGtT]] VG_NAME PhysicalDevicePath…:創建VG

             -s:指定PE的大小,PE默認大小是4MB

        vgs [VG_NAME]:顯示簡要VG信息

        vgdisplay [VG_NAME]:顯示指定VG的詳細信息,不指定VG則默認顯示全部VG的詳細信息

 

    LV常用命令

        lvcreate –L [+]#[mMgGtT] –n LV_NAME VG_NAME:創建LV

            -L:指定LV的大小

            -n:指定LV的名字

        lvs [LV_NAME]:顯示制指定v的簡要信息,不指定lv默認顯示全部lv的簡要信息

        lvdisplay [LV_NAME]:顯示指定lv的詳細信息,不指定lv默認顯示全部lv的詳細信息

        lvextend -L [+]#[mMgGtT] LV_NAME:擴展LV到指定大小

        lvreduce -L [+]#[mMgGtT] LV_NAME:縮減LV到指定大小

        lvremove /dev/VG_NAME/LV_NAME::刪除LV


LV的抽象表示


dapture.PNG


示例:LV的創建,擴展和縮減。此處以一塊120G的硬盤為例,其設備文件是/dev/sda


LV的創建


    1. 使用fdisk內建命令創建分區。注意,分區完畢后要將分區文件的System ID 改為8e: Linux LVM。此處以/dev/sda5, /dev/sda6,/dev/sda7作為LVM示例

[root@localhost ~]# fdisk -l /dev/sda

Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000c744b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    89120767    44047360   8e  Linux LVM
/dev/sda3        89120768   110092287    10485760   83  Linux
/dev/sda4       110092288   251658239    70782976    5  Extended
/dev/sda5       110094336   120580095     5242880   8e  Linux LVM
/dev/sda6       120582144   141553663    10485760   8e  Linux LVM
/dev/sda7       141555712   173012991    15728640   8e  Linux LVM

   

    2.  創建pv

[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  42.00g 4.00m
[root@localhost ~]# pvcreate /dev/{sda5,sda6,sda7}
  Physical volume "/dev/sda5" successfully created
  Physical volume "/dev/sda6" successfully created
  Physical volume "/dev/sda7" successfully created
[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize  PFree 
  /dev/sda2  centos lvm2 a--  42.00g  4.00m
  /dev/sda5         lvm2 ---  10.00g 10.00g
  /dev/sda6         lvm2 ---  10.00g 10.00g
  /dev/sda7         lvm2 ---   5.00g  5.00g

  

     3. 創建VG,指定PE大小為16MB

[root@localhost ~]# vgcreate -s 16M myvg /dev/sda5 /dev/sda6 /dev/sda7
  Volume group "myvg" successfully created
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  centos   1   3   0 wz--n- 42.00g  4.00m
  myvg     3   0   0 wz--n- 24.95g 24.95g
[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               24.95 GiB
  PE Size               16.00 MiB
  Total PE              1597
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1597 / 24.95 GiB
  VG UUID               b2OW0g-eCXR-0oxI-Z8Ft-Jemk-zXON-fnpSb1

    

    4. 創建LV

[root@localhost ~]# lvcreate -L 10G -n mylv myvg
WARNING: ext4 signature detected on /dev/myvg/mylv at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/myvg/mylv.
  Logical volume "mylv" created.
[root@localhost ~]# lvdisplay /dev/myvg/mylv
  --- Logical volume ---
  LV Path                /dev/myvg/mylv
  LV Name                mylv
  VG Name                myvg
  LV UUID                669CDR-JifV-bCou-1QfU-q7VH-0b07-orShqW
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-09-07 14:33:17 +0800
  LV Status              available
  # open                 0
  LV Size                10.00 GiB
  Current LE             640
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2


    5. 格式化LV文件系統

[root@localhost ~]# mke2fs -t ext3 /dev/myvg/mylv
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done 
[root@localhost ~]# blkid /dev/myvg/mylv
/dev/myvg/mylv: UUID="4eb1b6ce-3777-4c69-9be1-522ca486d936" SEC_TYPE="ext2" TYPE="ext3"

   

    6. Mount LV并測試

[root@localhost ~]# mount /dev/myvg/mylv /test_lv/
[root@localhost ~]# cp /var/log/*.log /test_lv/
[root@localhost ~]# ls /test_lv
boot.log  lost+found  wpa_supplicant.log  Xorg.0.log
[root@localhost ~]# umount /testlv
umount: /testlv: mountpoint not found
[root@localhost ~]# umount /dev/myvg/mylv 
[root@localhost ~]# mount /dev/myvg//mylv /users
[root@localhost ~]# ls /users
boot.log  lost+found  wpa_supplicant.log  Xorg.0.log

LVM的擴展


  1. 擴展LV

[root@localhost ~]# lvextend -L 15G /dev/myvg/mylv
  Size of logical volume myvg/mylv changed from 10.00 GiB (640 extents) to 15.00 GiB (960 extents).
  Logical volume mylv successfully resized.


    2. 擴展文件系統,填充LV的空間

[root@localhost ~]# resize2fs /dev/myvg/mylv 15G
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/mylv is mounted on /users; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/myvg/mylv is now 3932160 blocks long.

[root@localhost ~]# df -lh
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   20G  3.7G   17G  19% /
devtmpfs                 480M     0  480M   0% /dev
tmpfs                    495M  152K  495M   1% /dev/shm
tmpfs                    495M  7.2M  488M   2% /run
tmpfs                    495M     0  495M   0% /sys/fs/cgroup
/dev/mapper/centos-home   20G   36M   20G   1% /home
/dev/sda1                497M  159M  339M  32% /boot
tmpfs                     99M   12K   99M   1% /run/user/1000
/dev/sr0                 4.1G  4.1G     0 100% /run/media/max/CentOS 7 x86_64
/dev/mapper/myvg-mylv     15G   26M   14G   1% /users


Lvm的縮減:先縮減文件空間,再縮減物理空間


  1. 卸載LV

[root@localhost ~]# umount /dev/myvg/mylv

   

    2. 強制檢測文件系統

[root@localhost ~]# e2fsck -f /dev/myvg/mylv
e2fsck 1.42.9 (28-Dec-2013)
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: 14/983040 files (7.1% non-contiguous), 100917/3932160 blocks

   

    3. 縮減文件系統空間到7G

[root@localhost ~]# resize2fs /dev/myvg/mylv 7G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/mylv to 1835008 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 1835008 blocks long.


    4. 縮減LV空間至7G

[root@localhost ~]# lvs /dev/myvg/mylv
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-a----- 15.00g 
[root@localhost ~]# lvreduce -L 7G mylv
  Path required for Logical Volume "mylv".
  Please provide a volume group name
  Run `lvreduce --help' for more information.
[root@localhost ~]# lvreduce -L 7G /dev/myvg/mylv
  WARNING: Reducing active logical volume to 7.00 GiB
[root@localhost ~]# lvs /dev/myvg/mylv
  LV   VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-a----- 7.00g


    5. 掛載并測試

[root@localhost ~]# mount /dev/myvg/mylv /users
[root@localhost ~]# ls /users
boot.log  lost+found  wpa_supplicant.log  Xorg.0.log
[root@localhost ~]# cat /users/Xorg.0.log 
[    30.065] 
X.Org X Server 1.17.2
Release Date: 2015-06-16


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

(0)
mxb93mxb93
上一篇 2016-09-08
下一篇 2016-09-08

相關推薦

  • 淺談HTTP協議以及httpd的十八般武藝

      初識HTTP協議                HTTP(hyper text transfer protocal)作為互聯網應用最廣泛的協議,任何一個運維人員都無法回避它,HTTP的目的就是提供一種發布和…

    Linux干貨 2016-02-14
  • 系統自動化安裝、selinux

    系統自動化安裝 系統啟動流程:bootloader–>kernel(initramfs)–>rootfs–>anaconda–>/sbin/init anaconda: 系統安裝程序    tui: 基于圖形庫curses的文本配置窗口 &nbsp…

    Linux干貨 2016-09-22
  • Jumpserver 3.0 全新改版 更輕、更快、更便捷

               Jumpserver Wiki                       &…

    系統運維 2016-01-05
  • NoSQL—mongodb常見使用和入門

    NoSQL介紹: NoSQL數據管理系統是目前非常流行的一種非關系性、分布式、不支持ACID設計規范式的數據庫;NoSQL簡單的數據模型、元數據和數據分離、弱一致性、高吞吐量、高水平擴展能力和低端硬件集群使其流行的主要原因,而mongodb就是NoSQL數據庫一種非常流行的實現方式。   常見的NoSQL數據存儲模型 列式模型 文檔類型 應用場景:…

    2015-09-01
  • 程序包編譯安裝

    linux安裝采用命令行形式。

    2018-03-17
  • rsyslog配置詳解,結合mysql+loganalyzer展現

        環境:Centos7.2 前言:系統日日夜夜不停地運行著,有這么一個守護進程,兢兢業業地不斷記錄它運行產生的日志,有不起眼的閑言碎語,值得管理員撇一眼的系統報錯,也默默地接收來自進程的嚴厲警告,甚至在內核崩潰前夕,同樣不遺余力記錄著當時發生的情形。他是無言的記錄者,沒有特別的修辭,但他的記錄的文字卻擲地有聲。本…

    系統運維 2016-10-25
欧美性久久久久