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
下一篇 2016-08-29

相關推薦

  • 詳解Linux下用戶和組的配置文件

    本文將介紹Linux下用戶和組的概念及相關配置文件,通過本文,能更好的認識/etc/pssswd ,/etc/group,以及UID、GID的概念,最后將通過修改用戶配置文件來實現用戶和組的管理工作,對Linux的多任務、多用戶有一個更清楚的認識。 一、用戶(USER) 在LInux上用戶的管理工作是通過修改相關的配置文件來實現的,在日常的工作中主要包含對用…

    Linux干貨 2016-10-23
  • iptables練習

    iptables實戰 1.開啟防火墻 systemctl start firewalld 2.清空所有的默認規則,定義自己的規則 iptables -F 查看此時的iptables iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD…

    2015-03-15
  • 一起學WINS系列(三)界面、概覽

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/159542 上節我們討論了有關WINS服務器的安裝,本節將開始討論WINS配置等內容。 一般情況下,我們可以在控制面板的管理工具中找到WINS,或者在【運行】內…

    Linux干貨 2015-03-25
  • 基于LNMP網站平臺,測試增加memcached緩存系統后網站訪問效果

    LNMP安裝教程鏈接:22-love cat 17周博客作業第2部分-構建一個LVS-DR模型的高性能集群 memcached 安裝及測試效果 一、概念     memcached 是一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態…

    Linux干貨 2016-08-22
  • 文本處理工具補充之sed命令

    sed:stream editor,行編輯器         sed命令工作原理:它在處理數據時,每次只處理一行,首先把當前處理的行存儲在臨時緩沖區中,我們稱這個緩沖區稱為“”模式空間“,接著用sed命令處理緩沖區中的內容,處理完后,把緩沖區中的內容送到屏幕上顯示出來,接著去處理…

    Linux干貨 2016-08-11
  • linux 磁盤管理與文件掛載

        磁盤對于linux來說是至關重要的而且與它 的中心思想相關聯,一切皆文件,因此就把磁盤分為了好多類型, 如:塊設備,字符設備。對于每類磁盤的使用,我們對它進行了分區與規劃,這就用到我們的分區與查看工具 fdisk,理論上磁盤容量足夠時,可以建立任意數量的分區。  一.磁盤的管理與工具 1.  fdisk 強大的…

    2017-06-17
欧美性久久久久