lvm 邏輯卷管理

標簽:LVM 創建 擴容 縮減

一、LVM 

LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它由Heinz Mauelshagen在Linux 2.4內核上實現。LVM將一個或多個硬盤的分區在邏輯上集合,相當于一個大硬盤來使用,當硬盤的空間不夠使用的時候,可以繼續將其它的硬盤的分區加入其中,這樣可以實現磁盤空間的動態管理,相對于普通的磁盤分區有很大的靈活性。 

看圖識LV

lv.jpg

LVM重要的概念

物理卷(Physical Volume,PV)

指磁盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。

卷組(Volume Group,VG)

類似于非LVM系統中的物理磁盤,其由一個或多個物理卷PV組成??梢栽诰斫M上創建一個或多個LV(邏輯卷)。

邏輯卷(Logical Volume,LV)

類似于非LVM系統中的磁盤分區,邏輯卷建立在卷組VG之上。在邏輯卷LV之上可以建立文件系統(比如/home或者/usr等)。

物理塊(Physical Extent,PE)

每一個物理卷PV被劃分為稱為PE(Physical Extents)的基本單元,(對應物理磁盤上的扇區還是柱面)具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認為4MB。所以物理卷(PV)由大小等同的基本單元PE組成。

二、創建LVM

    創建步驟基本如同圖示一樣,一:建好倉庫,二:然后搭建一套管理人員把倉庫劃分管理好并對外宣傳我有一個大的倉庫歡迎來租賃,三:打廣告稿促銷尋找客戶來租你的倉庫。

    換成咱們LVM的概念就是先有PV才有VG最后劃分LV使用。

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屬性信息

創建LVM的簡要操作步驟

[root@zhuzw-centos6 ~]# ls /dev/sd*   #查看分區文件
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1  /dev/sdc  /dev/sdc1  #我們事先準備好的/dev/sdb1和/dev/sdc1
[root@zhuzw-centos6 ~]# pvcreate /dev/sdb1 /dev/sdc1  #將/dev/sdb1和/dev/sdc1創建為PV
  Physical volume "/dev/sdb1" successfully created   #創建成功的輸出
  Physical volume "/dev/sdc1" successfully created
[root@zhuzw-centos6 ~]# pvs         #查看PV的簡要信息
  PV         VG              Fmt  Attr PSize   PFree  
  /dev/sda2  vg_zhuzwcentos6 lvm2 a--   29.51g      0 
  /dev/sdb1                  lvm2 a--  120.00g 120.00g   #
  /dev/sdc1                  lvm2 a--   80.00g  80.00g  #
    
[root@zhuzw-centos6 ~]# vgcreate -s 8M Mylab /dev/sdb1 /dev/sdc1    #創建vg卷組 -s將PE大小修改稿為8M 卷組名稱為Mylab
  No physical volume label read from /dev/sdb1
  Physical volume /dev/sdb1 not found
  No physical volume label read from /dev/sdc1
  Physical volume /dev/sdc1 not found                   #上面四行提示是卷標沒有找到
  Physical volume "/dev/sdb1" successfully created      #創建成功的輸出
  Physical volume "/dev/sdc1" successfully created
  Volume group "Mylab" successfully created
[root@zhuzw-centos6 ~]# vgs   #查看VG的簡要信息
  VG              #PV #LV #SN Attr   VSize   VFree  
  Mylab             2   0   0 wz--n- 199.98g 199.98g
  vg_zhuzwcentos6   1   2   0 wz--n-  29.51g      0 
[root@zhuzw-centos6 ~]# lvcreate -l 200 -n lab_tmp Mylab   #創建一個LV 大小為200個PE 名稱為lab_tmp
  Logical volume "lab_tmp" created
[root@zhuzw-centos6 ~]# lvs      #查看LV的簡要信息
  LV      VG              Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  lab_tmp Mylab           -wi-a-----  1.56g                                             
  lv_root vg_zhuzwcentos6 -wi-ao---- 27.57g                                             
  lv_swap vg_zhuzwcentos6 -wi-ao----  1.94g   
[root@zhuzw-centos6 ~]# mkfs -t ext4 /dev/Mylab/lab_tmp    #格式化創建的LV分區,默認文件存放地址為/dev/VG_NAME/LV_NAME
[root@zhuzw-centos6 ~]# mount /dev/Mylab/lab_tmp /mnt/zhuzw #掛載至文件目錄
[root@zhuzw-centos6 ~]# mount   #查看掛載信息
/dev/mapper/vg_zhuzwcentos6-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)
/dev/mapper/Mylab-lab_tmp on /mnt/zhuzw type ext4 (rw)   #創建的LV的掛載信息

三、在線擴展根分區容量

我們首先把之前劃分給Mylab卷組的/dev/sdb1這個PV從卸載下來(新創建的額PV直接跳過);然后將這個PV加入到根系統所在的卷組內,調整根lv分區大小容量,最后跟新文件系統。

在做操作前一定要仔細查看LVM卷信息。防止誤操作。

擴容LVM的步驟是增加PV-增加VG-擴容LV-更新文件系統。

[root@zhuzw-centos6 zhuzw]# pvmove /dev/sdb1 /dev/sdc1  #卸載前一定要先把里面的文件移動到其他的PV上
  /dev/sdb1: Moved: 1.0%
  /dev/sdb1: Moved: 100.0%
[root@zhuzw-centos6 zhuzw]# vgreduce  Mylab /dev/sdb1  #將/dev/sdb1從Mylan卷組內刪除
  Removed "/dev/sdb1" from volume group "Mylab"
[root@zhuzw-centos6 zhuzw]# pvs  #查看PV簡要信息
  PV         VG              Fmt  Attr PSize   PFree  
  /dev/sda2  vg_zhuzwcentos6 lvm2 a--   29.51g      0 
  /dev/sdb1                  lvm2 a--  120.00g 120.00g   #確保/dev/sdb1的vg項為空
  /dev/sdc1  Mylab           lvm2 a--   79.99g  78.43g
[root@zhuzw-centos6 ~]# pvremove /dev/sdb1     #這是刪除PV的命令
  Labels on physical volume "/dev/sdb1" successfully wiped  #刪除PV的輸出
[root@zhuzw-centos6 ~]# pvcreate /dev/sdb1  #我們是要用這個PV的,再把它創建成PV
[root@zhuzw-centos6 zhuzw]# vgextend vg_zhuzwcentos6 /dev/sdb1  #將/dev/sdb1加入到根分區所在的卷組內
  Volume group "vg_zhuzwcentos6" successfully extended
[root@zhuzw-centos6 zhuzw]# pvs
  PV         VG              Fmt  Attr PSize   PFree  
  /dev/sda2  vg_zhuzwcentos6 lvm2 a--   29.51g      0 
  /dev/sdb1  vg_zhuzwcentos6 lvm2 a--  120.00g 120.00g
  /dev/sdc1  Mylab           lvm2 a--   79.99g  78.43g  
[root@zhuzw-centos6 tmp]# lvextend -L +30G /dev/vg_zhuzwcentos6/lv_root #調整根所在LV大小,增加30G空間
  Extending logical volume lv_root to 57.57 GiB
  Logical volume lv_root successfully resized  
  [root@zhuzw-centos6 mapper]# resize2fs /dev/vg_zhuzwcentos6/lv_root     #在線擴容文件系統大小,掛載的情況下只吃菜擴容,卸載后支持擴容與縮減
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_zhuzwcentos6/lv_root is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 4
Performing an on-line resize of /dev/dm-0 to 15091712 (4k) blocks.
The filesystem on /dev/dm-0 is now 15091712 blocks long.
[root@zhuzw-centos6 mapper]# df -h      #查看文件系統空閑空間情況
Filesystem                           Size  Used Avail Use% Mounted on
/dev/mapper/vg_zhuzwcentos6-lv_root   57G  3.3G   51G   6% /
tmpfs                                491M   72K  491M   1% /dev/shm
/dev/sda1                            485M   35M  426M   8% /boot

四、離線縮減空間

步驟卸載掛載–強制修復文件系統–縮減文件系統空間–縮減LV空間–重新掛載。

[root@zhuzw-centos6 ~]# df -h
Filesystem                           Size  Used Avail Use% Mounted on
/dev/mapper/vg_zhuzwcentos6-lv_root   57G  3.3G   51G   6% /
tmpfs                                491M   72K  491M   1% /dev/shm
/dev/sda1                            485M   35M  426M   8% /boot
/dev/mapper/vg_zhuzwcentos6-labdata   44G   77M   41G   1% /data          #目標將/data空間刪減為20G
[root@zhuzw-centos6 ~]# umount /data  #卸載/data的掛載
[root@zhuzw-centos6 ~]# resize2fs /dev/dm-3 20G   #縮減文件系統
resize2fs 1.41.12 (17-May-2010)
請先運行 'e2fsck -f /dev/dm-3'.          #提示請先強制修復文件系統,看來縮減文件系統時必須對文件系統進行修復
[root@zhuzw-centos6 ~]# e2fsck -f /dev/dm-3  #強制修復文件系統
e2fsck 1.41.12 (17-May-2010)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/dm-3: 11/2816000 files (0.0% non-contiguous), 196357/11509760 blocks
[root@zhuzw-centos6 ~]# resize2fs /dev/dm-3 20G  #修復完成后再次縮減文件系統
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/dm-3 to 5242880 (4k) blocks.
The filesystem on /dev/dm-3 is now 5242880 blocks long.  #縮減文件系統完成
[root@zhuzw-centos6 ~]# lvreduce -L 20G /dev/vg_zhuzwcentos6/labdata  #縮減LV分區空間
  WARNING: Reducing active logical volume to 20.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce labdata? [y/n]: y
  Reducing logical volume labdata to 20.00 GiB
  Logical volume labdata successfully resized  #縮減完成
[root@zhuzw-centos6 ~]# mount /dev/dm-3 /data   #重新掛載
[root@zhuzw-centos6 ~]# df -h   #查看文件系統空間
Filesystem                           Size  Used Avail Use% Mounted on
/dev/mapper/vg_zhuzwcentos6-lv_root   57G  3.3G   51G   6% /
tmpfs                                491M   72K  491M   1% /dev/shm
/dev/sda1                            485M   35M  426M   8% /boot
/dev/mapper/vg_zhuzwcentos6-labdata   20G   75M   19G   1% /data    #縮減成功

    最后數據無價操作需謹慎啊。

原創文章,作者:東郭先生,如若轉載,請注明出處:http://www.www58058.com/4452

(0)
東郭先生東郭先生
上一篇 2015-05-18
下一篇 2015-05-18

相關推薦

  • 馬哥教育網絡班25期-第4周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 ~]# cp -r /etc/skel/ /home/tuser1 ~]# cd /home/tuser1 tuser1]# ll -a 總用量…

    Linux干貨 2016-12-26
  • 文件管理命令及變量基礎

    文件管理工具:cp,    mv,     rm       cp命令:copy 源文件;目標文件 單源復制: cp [OPTION]….[-T]  SOURCE  DEST 多源復制:cp [OPTION] ….SOURCE…DIR…

    Linux干貨 2016-12-21
  • 01day-計算機與操作系統基礎

    第1章 計算機基礎 1.1 什么是計算機 計算機是個籠統的概念,泛指一切計算功能的機器。這樣扯的話,以前的算盤也是計算機了。我們現在的計算機應該稱作電子計算機,我天朝人民稱為電腦。聽說谷歌在研究量子計算機,完全不懂是什么玩意。 一不小心在百度百科看到還有光子計算機,生物計算機,嚇我一跳,趕緊復制鏈接過來,自己慢慢看《百度百科—-計算機》 &nbs…

    Linux干貨 2016-06-29
  • 如何正確安裝一個源碼包

        下周就要考試了,心情挺忐忑不安的,前幾天做了25期的考試題,感覺每個題都是老師上課講過的,但是自己做卻想不起來了。這應該就像學習數學一樣,需要大量練習,做的多了自然就會了。     這周我們學習了如何使用yum,還學習了磁盤管理。針對如何安裝源碼包,以httpd包為例我們…

    2017-08-19
  • Linux系統時間簡單修改方法

          Linux時鐘分為系統時鐘(System Clock)和硬件(Real Time Clock,簡稱RTC)時鐘。系統時鐘是指當前Linux Kernel中的時鐘,而硬件時鐘則是主板上由電池供電的時鐘,這個硬件時鐘可以在BIOS中進行設置。Linux中的所有命令(包括函數)都是采用的系統時鐘設置。Linux操作系統運行…

    Linux干貨 2015-06-12
  • 學習宣言

    努力不只是為了更好的生活,更是為了證明自己! 只有逼自己一把,才能知道自己是可以做到的! 路漫漫其修遠兮,吾將上下而求索。

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