LVM——如何讓你的磁盤空間可大可小

邏輯卷管理器(LVM)

允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小

允許在多個物理設備間重新組織文件系統

         將設備指定為物理卷

         用一個或者多個物理卷來創建一個卷組

         物理卷是用固定大小的物理區域(Physical Extent,PE )來定義的

         在物理卷上創建的邏輯卷是由物理區域(PE )組成

         可以在邏輯卷上創建文件系統

LVM: Logical Volume Manager,Version:2

         dm: device mapper:將一個或多個底層塊設備組織成一個邏輯設備的模塊

         設備名:/dev/dm-#

         軟鏈接:

         /dev/mapper/VG_NAME-LV_NAME

            /dev/mapper/vol0-root

         /dev/VG_NAME/LV_NAME

            /dev/vol0/root

LVM可以彈性的更改LVM的容量

通過交換PE來進行資料的轉換,將原來LV內的PE轉移到其他的設備中以降低LV的容量,或將其他設備中的PE加到LV中以加大容量

lvm.png

pv管理工具:

pvs:簡要pv信息顯示

pvdisplay:顯示pv的詳細信息

pvcreate /dev/DEVICE:創建pv或增加pv磁盤

pvmove /dev/DEVICE:把某塊磁盤中使用的PE數據塊,搬到其他磁盤中去

pvremove /dev/DEVICE…:將磁盤pv屬性移除,不具有pv屬性

vg管理工具:

vgs:簡要vg信息顯示

vgdisplay:顯示vg的詳細信息

vgcreate [-s #[kKmMgG]] VolumeGroupName /dev/DEVICE….:創建vg

    -s:指定LVM中塊(PE)的大小

vgextend VGName /dev/DEVICE….:擴展vg

vgreduce VGName /dev/DEVICE….:從vg中移除某塊磁盤設備

    注意:vgreduce移除磁盤空間需要先移動該磁盤空間中被使用的PE塊,使用pvmove命令

vgremove VGName:將磁盤vg屬性移除,不具有vg屬性

lv管理工具:

lvs:簡要lv信息顯示

lvdisplay:顯示lv的詳細信息

lvcreate -L #[mMgGtT] -n LVName VGName :創建lv

    -L:指定lv空間的大小

    -n:指定lv的名字,在磁盤上表示為/dev/VGName/LVName

lvextend -L [+]#[mMgGtT] /dev/DEVICE….:擴展vg

    +表示在當前系統的基礎上增加#的空間

    不寫+表示把當前系統擴展成#的空間

lvreduce -L [-]#[mMgGtT] /dev/VGName/LVName:縮減lv磁盤空間

    -表示在當前系統的基礎上減少#的空間

    不寫-表示把當前系統縮減成#的空間

    注意:要縮減lv的磁盤空間,要先縮減文件系統的空間

lvremove LVName:將磁盤vg屬性移除,不具有vg屬性

重設文件系統大?。?/span>

resize2fs device

    當前lv有多大,擴展到多大

resize2fs device #[mMgGtT]

    當前文件系統改變成#的空間大小

擴展邏輯卷:

# lvextend -L [+]#[mMgGtT] /dev/VGName/LVName

# resizefs /dev/VGName/LVName

    擴展邏輯卷需要先擴展lv的空間,在擴展文件系統大小,可以在線擴展


百分百使用vg空間:

        # lvextend -r -l +100%FREE /dev/VGName/LVName

縮減邏輯卷:

# umount /dev/VGName/LVName

# e2fsck -f /dev/VGName/LVName

# resizefs /dev/VGName/LVName #[mMgGtT]

# lvreduce -L [-]#[mMgGtT] /dev/VGName/LVName

# mount /dev/VGName/LVName

注意:縮減有可能導致文件數據丟失,且原文件已經占用20G空間,則縮減不能低于20G

文件系統階段:

要想真正使用lvm,必須對新建立的lv進行格式化掛載

# mke2fs -t ext4 /dev/VAName/LVName

# mount /dev/VAName/LVName /DIR

邏輯卷管理器快照:

快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的準確拷貝

對于需要備份或者復制的現有數據集臨時拷貝以及其它操作來說,快照是最合適的選擇

快照只有在它們和原來的邏輯卷不同時才會消耗空間

         在生成快照時會分配給它一定的空間,但只有在原來的邏輯卷或者快照有所改變才會使用這些空間

         當原來的邏輯卷中有所改變時,會將舊的數據復制到快照中

         快照中只含有原來的邏輯卷中更改的數據或者自生成快照后的快照中更改的數據

         建立快照的卷大小只需要原始邏輯卷的15% ~20%就夠了,也可以使用lvextend放大快照

為現有邏輯卷創建快照:

注意:快照卷和原卷是在同一目錄下

# lvcreate -L #[mMgGtT] -s -n snap-data -p r /dev/VGName/snap-data

         -L:大小

         -n:快照卷

         -s:原卷

         -p:快照卷數據(-r 只讀)

掛載快照:

# mkdir -p /mnt/snap

# mount -o ro /dev/VGName/snap-data /mnt/snap

刪除快照:

# umount /mnt/databackup

# lvremove /dev/VGName/snap-data

    移除快照要使用設備名

作業:1、創建一個至少有兩個PV組成的大小為20G的名為testvg的VG ;要求PE大小為16MB,而后在卷組中創建大小為5G的邏輯卷testlv;掛載至/users目錄

[root@CentOS6 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  /media/CentOS_6.8_Final
sda      8:0    0  100G  0 disk
├─sda1   8:1    0  300M  0 part /boot
├─sda2   8:2    0 97.8G  0 part /
└─sda3   8:3    0    2G  0 part [SWAP]
sdb      8:16   0   10G  0 disk
sdc      8:32   0   10G  0 disk
sdd      8:48   0   10G  0 disk
[root@CentOS6 ~]# pvs
[root@CentOS6 ~]# pvcreate /dev/sd{b,c}
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created
[root@CentOS6 ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree
  /dev/sdb        lvm2 ---- 10.00g 10.00g
  /dev/sdc        lvm2 ---- 10.00g 10.00g
[root@CentOS6 ~]# vgcreate -s 16MB testvg /dev/sd{b,c}
  Volume group "testvg" successfully created
[root@CentOS6 ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  testvg   2   0   0 wz--n- 19.97g 19.97g
[root@CentOS6 ~]# vgdisplay
  --- Volume group ---
  VG Name               testvg
......
  VG Size               19.97 GiB
  PE Size               16.00 MiB
......
  Free  PE / Size       1278 / 19.97 GiB
  VG UUID               pqeXTx-cqR6-MVCv-JhFK-V14f-U2kn-3i3y7y
[root@CentOS6 ~]# pvs
  PV         VG     Fmt  Attr PSize PFree
  /dev/sdb   testvg lvm2 a--u 9.98g 9.98g
  /dev/sdc   testvg lvm2 a--u 9.98g 9.98g
[root@CentOS6 ~]# lvcreate -L 5G -n testlv testvg
  Logical volume "testlv" created.
[root@CentOS6 ~]# lvs
  LV     VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  testlv testvg -wi-a----- 5.00g
[root@CentOS6 ~]# mkfs.ext4 /dev/testvg/testlv
....
[root@CentOS6 ~]# mkdir /users
[root@CentOS6 ~]# mount /dev/testvg/testlv /users
[root@CentOS6 ~]# cd /users
[root@CentOS6 users]# ls
lost+found
[root@CentOS6 users]# cp /etc/fstab /etc/issue /etc/rc.d -r ./
[root@CentOS6 users]# ls
fstab  issue  lost+found  rc.d

2、新建用戶archlinux,要求其家目錄為/users/archlinux,而后su 切換至archlinux用戶,復制/etc/pam.d目錄至自己的家目錄

[root@CentOS6 users]# useradd -d /users/archlinux archlinux
[root@CentOS6 users]# su - archlinux
[archlinux@CentOS6 ~]$ pwd
/users/archlinux
[archlinux@CentOS6 ~]$ cp /etc/pam.d -r ./
[archlinux@CentOS6 ~]$ ls
pam.d
[archlinux@CentOS6 ~]$ ls ../
archlinux  fstab  issue  lost+found  rc.d

3、擴展testlv至7G

[root@CentOS6 users]# lvextend -L 7G /dev/testvg/testlv
  Size of logical volume testvg/testlv changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents).
  Logical volume testlv successfully resized.
[root@CentOS6 users]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              97G  3.1G   89G   4% /
tmpfs                 491M  224K  491M   1% /dev/shm
/dev/sda1             283M   34M  234M  13% /boot
/dev/sr0              3.7G  3.7G     0 100% /media/CentOS_6.8_Final
/dev/mapper/testvg-testlv
                      4.8G   11M  4.6G   1% /users
[root@CentOS6 users]# resize2fs /dev/testvg/testlv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/testvg/testlv is mounted on /users; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/testvg/testlv to 1835008 (4k) blocks.
The filesystem on /dev/testvg/testlv is now 1835008 blocks long.
[root@CentOS6 users]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              97G  3.1G   89G   4% /
tmpfs                 491M  224K  491M   1% /dev/shm
/dev/sda1             283M   34M  234M  13% /boot
/dev/sr0              3.7G  3.7G     0 100% /media/CentOS_6.8_Final
/dev/mapper/testvg-testlv
                      6.8G   12M  6.5G   1% /users

4、收縮testlv至3G

[root@CentOS6 ~]# umount /users
[root@CentOS6 ~]# e2fsck -f /dev/testvg/testlv
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/testvg/testlv: 533/458752 files (0.0% non-contiguous), 64627/1835008 blocks
[root@CentOS6 ~]# resize2fs /dev/testvg/testlv 3G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/testvg/testlv to 786432 (4k) blocks.
The filesystem on /dev/testvg/testlv is now 786432 blocks long.
[root@CentOS6 ~]# lvreduce -L -4G /dev/testvg/testlv
  WARNING: Reducing active logical volume to 3.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testvg/testlv? [y/n]: y
  Size of logical volume testvg/testlv changed from 7.00 GiB (448 extents) to 3.00 GiB (192 extents).
  Logical volume testlv successfully resized.
[root@CentOS6 ~]# mount /dev/testvg/testlv /users
[root@CentOS6 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              97G  3.1G   89G   4% /
tmpfs                 491M  224K  491M   1% /dev/shm
/dev/sda1             283M   34M  234M  13% /boot
/dev/sr0              3.7G  3.7G     0 100% /media/CentOS_6.8_Final
/dev/mapper/testvg-testlv
                      2.9G  8.3M  2.7G   1% /users
[root@CentOS6 ~]# ls /users/
archlinux  fstab  issue  lost+found  rc.d
[root@CentOS6 ~]# ls /users/archlinux/
pam.d

5 、對testlv 創建快照,并嘗試基于快照備份數據,驗正快照的功能

[root@CentOS6 ~]# cd /users
[root@CentOS6 users]# lvcreate -L 500M -s -n snap_lv -p r /dev/testvg/testlv               //創建快照卷
  Rounding up size to full physical extent 512.00 MiB
  Logical volume "snap_lv" created.
[root@CentOS6 users]# lvs
  LV      VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  snap_lv testvg sri-a-s--- 512.00m      testlv 0.00                                   
  testlv  testvg owi-aos---   3.00g                                                    
[root@CentOS6 users]# mount /dev/testvg/snap_lv /mnt                 //快照卷和原卷在同一磁盤中,掛載快照卷到/mnt目錄下
mount: block device /dev/mapper/testvg-snap_lv is write-protected, mounting read-only
[root@CentOS6 users]# pwd
/users
[root@CentOS6 users]# ls
archlinux  fstab  issue  lost+found  rc.d
[root@CentOS6 users]# ls /mnt
archlinux  fstab  issue  lost+found  rc.d
[root@CentOS6 users]# echo xxx > /users/issue                 //以下為驗證快照卷功能
[root@CentOS6 users]# cat /users/issue
xxx
[root@CentOS6 users]# cat /mnt/issue 
CentOS release 6.8 (Final)
Kernel \r on an \m
[root@CentOS6 users]# rm /users/fstab 
rm: remove regular file `/users/fstab'? y
[root@CentOS6 users]# ls
archlinux  issue  lost+found  rc.d
[root@CentOS6 users]# ls /mnt/
archlinux  fstab  issue  lost+found  rc.d


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

(0)
megedugaomegedugao
上一篇 2016-08-29 08:45
下一篇 2016-08-29 08:49

相關推薦

  • 救援模式安裝grub

    如果之前mbr沒有備份,而后grub損壞進不了系統,只能用系統光盤或U盤開機進入救援模式安裝grub,操作如下 1.光盤啟動,進入救援模式 2.切換根目錄 # chroot /mnt/sysimage 3.安裝 grub # grub-install /dev/sda 4.重新啟動        &…

    Linux干貨 2017-01-13
  • 博客啟動計劃&我個人理解的Python優缺點

    很久沒有寫博客了,因為最近一直在使用Python。Python實在不是一門好的工作用語言(我的觀點是所有的動態語言都不是好的工作用語言,不僅是Python),但是自己玩還是可以的。但,生活所迫,還是要繼續用的呀(笑)。 所以呢,博客還是要寫的,java還是最喜歡的,Python也是要學習的,當然其實更多是總結了。既然博客要啟動了,這篇文字就權當測試吧,使用公…

    Linux干貨 2015-03-13
  • LAMP及nfs、samba的綜合練習

    練習一: 配置第一臺主機:服務端共享目錄: [root@localhost /]# yum install nfs-utils [root@localhost /]# systemctl start rpcbind [root@localhost /]# sy…

    Linux干貨 2016-10-24
  • 第二次作業

    一、只顯示某目錄下隱藏文件    答案1:#ls -d /tmp/*/    但是此答案是我在同學知道下完成,但是原理沒明白 如果單獨執行        #ls -d  &nbsp…

    Linux干貨 2016-08-03
  • bash腳本編程之select語句、函數

    概述     承接上篇,繼續介紹一下另一個循環語句select,還有腳本中函數的相關內容,分為三個部分:         1、select語句的介紹和效果演示       &nbs…

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