Linux下的LVM管理命令

一. 何為LVM?

    Logical Volume Manager的縮寫,它可以把多個分區、硬盤甚至RAID組合成一個存儲設備來使用,并可以擴展或縮減空間。LVM有三層組成組成:底層的PV,中間的VG,上層的LV,如圖所示

    blob.png

    PV: physical volume,指的是底層的物理卷:硬盤,分區或者RAID;

    VG:volume group,指的是PV的組合;

        PE:physical extend,在VG層上定義的物理塊區;

    LV: logical volume,邏輯上劃分出來的分區,如果VG留有剩余空間,LV甚至可以擴展,若LV有剩余空間,可以對它進行縮減操作(有風險);

    其實做出LV還是不能投入使用,LV只相當于一般的分區,若想使用它,還得對他進行格式化和掛載操作。

二. 有哪些常用命令?

    前提準備

    在開始我們的實驗之前,我們得準備好兩個分區,注意分區類型一定得是8e(linux LVM)類型的,如下是我準備好的分區:(注意分區類型,我已經設置為8e;關于如何分區請使用fdisk命令。)

    /dev/sda7        77611008    98582527    10485760   8e  Linux LVM
    /dev/sda8        98584576   119556095    10485760   8e  Linux LVM

    系統上的PV的信息顯示:

        pvs:顯示所有pv的簡要信息;

        pvdisplay:顯示所有pv的詳細信息;

    PV的創建命令:

        pvcreate:

[root@localhost ~]# pvcreate /dev/sda7 /dev/sda8
  Physical volume "/dev/sda7" successfully created
  Physical volume "/dev/sda8" successfully created

    注意:兩個分區直接用空格隔開,當然你也可以使用命令行展開功能:/dev/sda{7,8}

        

    創建VG:

[root@localhost ~]# vgcreate -s 16M TEST_VG /dev/sda{7,8}
  Volume group "TEST_VG" successfully created

    

    創建LV:

[root@localhost ~]# lvcreate -L 5G -n TEST_LV TEST_VG
  Logical volume "TEST_LV" created.

    創建文件系統ext4:

    參數是LV的全路徑,如果不知道,可以通過 fdisk -l | grep "LV_NAME" 命令查看;

    在此LV_NAME指的是TEST_LV

[root@localhost ~]# mke2fs -t ext4 /dev/mapper/TEST_VG-TEST_LV 
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
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 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
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

    掛載至某個目錄:

[root@localhost ~]# mount /dev/mapper/TEST_VG-TEST_LV /users/

    

    為了對LVM的擴展、縮減功能及快照功能進行測試,我在掛載目錄/users目錄下創建了archlinux目錄,并把/etc/pam.d/目錄復制至archlinux中,便于以后進行驗證:

[root@localhost ~]# cp -r /etc/pam.d/ /users/archlinux/
[root@localhost ~]# ls -al /users/archlinux/
total 24
drwx------. 3 archlinux archlinux 4096 Dec  5 15:09 .
drwxr-xr-x. 4 root      root      4096 Dec  5 15:08 ..
-rw-r--r--. 1 archlinux archlinux   18 Mar  5  2015 .bash_logout
-rw-r--r--. 1 archlinux archlinux  193 Mar  5  2015 .bash_profile
-rw-r--r--. 1 archlinux archlinux  231 Mar  5  2015 .bashrc
drwxr-xr-x. 2 root      root      4096 Dec  5 15:09 pam.d

    

    LVM的擴展:

[root@localhost ~]# lvextend -L 7G /dev/mapper/TEST_VG-TEST_LV 
  Size of logical volume TEST_VG/TEST_LV changed from 5.00 GiB (320 extents) to 7.00 GiB (448 exte
nts).  Logical volume TEST_LV successfully resized

    

    因為在LV之上還有一層文件系統,所以擴展LV之后,還應擴展文件系統,擴展文件系統要用到resize2fs命令:

[root@localhost ~]# resize2fs /dev/mapper/TEST_VG-TEST_LV     <--resize2fs命令
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/TEST_VG-TEST_LV is mounted on /users; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mapper/TEST_VG-TEST_LV is now 1835008 blocks long.
[root@localhost ~]# df -lh     <--檢查是否擴展成功
Filesystem                   Size  Used Avail Use% Mounted on
/dev/sda3                    4.8G   43M  4.5G   1% /
devtmpfs                     485M     0  485M   0% /dev
tmpfs                        494M     0  494M   0% /dev/shm
tmpfs                        494M  6.8M  487M   2% /run
tmpfs                        494M     0  494M   0% /sys/fs/cgroup
/dev/mapper/centos-usr       9.8G  921M  8.4G  10% /usr
/dev/sda5                    4.8G   20M  4.6G   1% /home
/dev/sda1                    4.8G  116M  4.5G   3% /boot
/dev/mapper/centos-var       9.8G  139M  9.1G   2% /var
/dev/mapper/TEST_VG-TEST_LV  6.8G   23M  6.4G   1% /users     <--6.8G,在誤差允許范圍內

    縮減LV:

        1. 應先umount掛載的LV裝置;

        2. 使用e2fsck對LV進行校驗;

        3. 使用resize2fs縮減文件系統;

        4. 使用lvreduce縮減LV;

[root@localhost ~]# umount /dev/mapper/TEST_VG-TEST_LV             <--umount
[root@localhost ~]# ls -al /users/archlinux/                  <--檢查,存在于TEST_LV的archlinux已不存在
ls: cannot access /users/archlinux/: No such file or directory
[root@localhost ~]# e2fsck /dev/mapper/TEST_VG-TEST_LV         <--校驗文件系統
e2fsck 1.42.9 (28-Dec-2013)
/dev/mapper/TEST_VG-TEST_LV: clean, 49/458752 files, 67359/1835008 blocks
[root@localhost ~]# e2fsck -f /dev/mapper/TEST_VG-TEST_LV     <--應使用-f選項校驗文件系統
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/mapper/TEST_VG-TEST_LV: 49/458752 files (0.0% non-contiguous), 67359/1835008 blocks 
[root@localhost ~]# resize2fs /dev/mapper/TEST_VG-TEST_LV 3G     <--resize2fs,調文件系統小至3G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mapper/TEST_VG-TEST_LV to 786432 (4k) blocks.
The filesystem on /dev/mapper/TEST_VG-TEST_LV is now 786432 blocks long.
[root@localhost ~]# lvreduce -L 3G /dev/mapper/TEST_VG-TEST_LV     <--減小LV至3G
  WARNING: Reducing active logical volume to 3.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce TEST_LV? [y/n]: y
  Size of logical volume TEST_VG/TEST_LV changed from 7.00 GiB (448 extents) to 3.00 GiB (192 exte
nts).  Logical volume TEST_LV successfully resized
[root@localhost ~]# mount /dev/mapper/TEST_VG-TEST_LV /users/    <--重新掛載
[root@localhost ~]# ls -al /users/archlinux/                    <--查看其中文件
total 24
drwx------. 3 archlinux archlinux 4096 Dec  5 15:09 .
drwxr-xr-x. 4 root      root      4096 Dec  5 15:08 ..
-rw-r--r--. 1 archlinux archlinux   18 Mar  5  2015 .bash_logout
-rw-r--r--. 1 archlinux archlinux  193 Mar  5  2015 .bash_profile
-rw-r--r--. 1 archlinux archlinux  231 Mar  5  2015 .bashrc
drwxr-xr-x. 2 root      root      4096 Dec  5 15:09 pam.d
[root@localhost ~]# df -lh                                    <--查看空間是否正確
Filesystem                   Size  Used Avail Use% Mounted on
/dev/sda3                    4.8G   43M  4.5G   1% /
devtmpfs                     485M     0  485M   0% /dev
tmpfs                        494M     0  494M   0% /dev/shm
tmpfs                        494M  6.8M  487M   2% /run
tmpfs                        494M     0  494M   0% /sys/fs/cgroup
/dev/mapper/centos-usr       9.8G  921M  8.4G  10% /usr
/dev/sda5                    4.8G   20M  4.6G   1% /home
/dev/sda1                    4.8G  116M  4.5G   3% /boot
/dev/mapper/centos-var       9.8G  139M  9.1G   2% /var
/dev/mapper/TEST_VG-TEST_LV  2.9G   16M  2.7G   1% /users

    使用快照功能:

    創建LV的快照同樣須使用lvcreate命令,只是需要加上-s選項指定要創建快照(snapshot),并使用-L選項指定快照的大小,使用-n指定快照的名字;最好使用-p選項將其設置為只讀;

    如下:

[root@localhost ~]# lvcreate -L 3G -n TEST_SLV -s /dev/mapper/TEST_VG-TEST_LV    <--創建快照
  Logical volume "TEST_SLV" created.
[root@localhost ~]# lvchange -p r /dev/mapper/TEST_VG-TEST_SLV     <--忘了設置只讀屬性,使用lvchange修改
  Logical volume "TEST_SLV" changed.
[root@localhost ~]# mount /dev/mapper/TEST_VG-TEST_SLV /users/backup/    <--掛載驗證,提示只讀
mount: /dev/mapper/TEST_VG-TEST_SLV is write-protected, mounting read-only
[root@localhost ~]# ls -al /users/backup/archlinux/        <--與TEST_LV內容相同
total 24
drwx------. 3 archlinux archlinux 4096 Dec  5 15:09 .
drwxr-xr-x. 4 root      root      4096 Dec  5 15:08 ..
-rw-r--r--. 1 archlinux archlinux   18 Mar  5  2015 .bash_logout
-rw-r--r--. 1 archlinux archlinux  193 Mar  5  2015 .bash_profile
-rw-r--r--. 1 archlinux archlinux  231 Mar  5  2015 .bashrc
drwxr-xr-x. 2 root      root      4096 Dec  5 15:09 pam.d
[root@localhost ~]# cp /etc/fstab /users/archlinux/fstab.bak    <--復制fstab至TEST_LV,為fstab.bak
[root@localhost ~]# ls -al /users/backup/archlinux/           <--快照TEST_SLV沒有fstab.bak
total 24
drwx------. 3 archlinux archlinux 4096 Dec  5 15:09 .
drwxr-xr-x. 4 root      root      4096 Dec  5 15:08 ..
-rw-r--r--. 1 archlinux archlinux   18 Mar  5  2015 .bash_logout
-rw-r--r--. 1 archlinux archlinux  193 Mar  5  2015 .bash_profile
-rw-r--r--. 1 archlinux archlinux  231 Mar  5  2015 .bashrc
drwxr-xr-x. 2 root      root      4096 Dec  5 15:09 pam.d
[root@localhost ~]# ls -al /users/archlinux/        <--TEST_LV掛載的archlinux中已存在fatab.bak
total 28
drwx------. 3 archlinux archlinux 4096 Dec  5 15:52 .
drwxr-xr-x. 5 root      root      4096 Dec  5 15:49 ..
-rw-r--r--. 1 archlinux archlinux   18 Mar  5  2015 .bash_logout
-rw-r--r--. 1 archlinux archlinux  193 Mar  5  2015 .bash_profile
-rw-r--r--. 1 archlinux archlinux  231 Mar  5  2015 .bashrc
-rw-r--r--. 1 root      root       841 Dec  5 15:52 fstab.bak
drwxr-xr-x. 2 root      root      4096 Dec  5 15:09 pam.d

 

三. 接下來我們看看如何刪除快照,LV,VG,PV;

    卸載快照掛載的分區:

[root@localhost ~]# umount /dev/mapper/TEST_VG-TEST_SLV

    移除LV的快照:

[root@localhost ~]# lvremove /dev/mapper/TEST_VG-TEST_SLV
Do you really want to remove active logical volume TEST_SLV? [y/n]: Y
  Logical volume "TEST_SLV" successfully removed

    移除LV(在移除之前先執行卸載umount):

[root@localhost ~]# umount /dev/mapper/TEST_VG-TEST_LV 
[root@localhost ~]# lvremove /dev/mapper/TEST_VG-TEST_LV 
Do you really want to remove active logical volume TEST_LV? [y/n]: y
  Logical volume "TEST_LV" successfully removed

    移除VG:

[root@localhost ~]# vgremove TEST_VG
  Volume group "TEST_VG" successfully removed

    注意:直接輸入VG的名稱即可,如果想不起來可以使用vgs查看。

    刪除PV:

[root@localhost ~]# pvremove /dev/sda7 /dev/sda8
  Labels on physical volume "/dev/sda7" successfully wiped
  Labels on physical volume "/dev/sda8" successfully wiped

    注意:移除PV的參數是底層PV的名稱,如果想不起來請使用pvs查看。

    

    接下來就是刪除分區了,這個比較簡單請自行查閱相關資料吧。

    本文中有很多命令使用了OPTION,沒有細說,有不明白的就請自行man吧^-^。

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

(0)
JacenJacen
上一篇 2015-12-03
下一篇 2015-12-06

相關推薦

  • VimTutor中文版

        歡  迎   閱   讀   《 V I M  教  程 》           …

    Linux干貨 2016-08-24
  • 馬哥教育網絡班22期+第3周課程練習 忍者亂太郎喻成

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。  who|awk '{print $1}'|uniq 2、取出最后登錄到當前系統的用戶的相關信息。 題目不是很清晰我估計是題目想要的是 last -1   cat /etc/pa…

    Linux干貨 2016-09-06
  • 文件管理

    echo“- – -”>/sys/class/scsi_host/host2/scan掃描新裝的硬盤,不需要重啟 磁盤管理三大步驟:分區,管理,掛載 設備文件創建mknob cdrom /mnt/cdrom 并行接口針多,但是傳的速度過快,會對數據造成干擾 vLinux的數據一般都存儲在分區空間里 學習linux的磁盤管理就必須:…

    Linux干貨 2016-11-27
  • NET25-第7周作業

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; [root@node1 ~]# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI o…

    Linux干貨 2017-03-15
  • N21_第5周作業find

    第5周作業 1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; [root@iZ28zld7ztoZ ~]# grep '^[[:space:]]' /boot/grub/grub.conf [root@iZ28zld7ztoZ ~]# grep&nbsp…

    Linux干貨 2016-08-08
  • 初識Linux

    本文對計算機組成及其功能、Linux的發行版、以及Linux的哲學思想進行了簡單的介紹;同時對Linux系統中常用的基礎命令以及如何獲取幫助信息進行了詳細的說明。

    2018-01-14
欧美性久久久久