centos7 LVM邏輯卷的配置和管理

1、什麼是LVM
傳統的分區都是一次性分區,即分區後其大小就是固定的,不能後期因爲空間不足進行大小調整,如果要改變,唯一的操作辦法就是重新分區,這對於需要高可用的服務器環境是非常糟糕的,所以此時引入了LVM邏輯卷管理模式,LVM就是一個建立在物理存儲驅動器上的邏輯驅動機制,它的作用主要是使存儲設備的空間調整處於一種彈性的工作狀態,不在是固定的,可以根據環境的需求,動態的調整空間的使用量,不但可以擴容,也可以縮減,而且調整存儲空間的時候不需要重啓系統,它還有一個最大的優點就是可以跨硬盤調整分區大小,完全不影響系統的運行。
2、LVM邏輯卷的體系結構
centos7  LVM邏輯卷的配置和管理
3、LVM體系思路
首先將一個或者多個物理存儲空間,初始化配置,將它們都配置成爲LVM系統識別的物理卷,即將它們的磁盤標籤設置成爲Linux LVM類型,這裏的物理存儲空間可以是基本磁盤分區,也可以是整個物理磁盤,或者創建的RAID卷
當初始化完成後,都變成物理卷PV,接下來要他們組成一個隊伍,即分成一個組,因爲他們此前都是單兵作戰,不能同一隊形,這樣對於操作系統而言,還是認爲這是各自獨立的存儲磁盤,所以我們要讓操作系統知道這些都是一個存儲空間,至少在形式上讓它這樣以爲,這就爲我們後面調整存儲空間解放自由,不在受限,任意而爲。
在上述之後,我們就可以在這個組之上,任意劃分邏輯卷LV,並且建立文件系統,存儲我們的數據。
4、完整的配置實踐
這裏我們以centos7系統的根目錄爲例
操作平臺:VMware workstation
操作環境:centos7計算機一臺,添加一塊硬盤空間爲20G
這裏需要注意一點:操作之前,如果你是用磁盤分區的形式來做,記得將分區類型設置爲Linux LVM
5、命令操作
創建之前我們先看一下,我們當前根目錄的空間使用情況,可用空間爲12G
在這裏插入圖片描述
創建物理卷















[root@lab-235 ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.

查看物理卷信息可以用到以下幾個命令
pvscan:掃描物理卷

[root@lab-235 ~]# pvscan 
  PV /dev/sda2   VG centos          lvm2 [19.80 GiB / 0    free]
  PV /dev/sdb                       lvm2 [20.00 GiB]
  Total: 2 [39.80 GiB] / in use: 1 [19.80 GiB] / in no VG: 1 [20.00 GiB]

我們可以看到現在有兩個物理卷,一個是我們系統的根分區,還有一個是我們剛剛創建的/dev/sdb
pvs:顯示物理卷的基本信息

[root@lab-235 ~]# pvs
  PV         VG     Fmt  Attr PSize  PFree 
  /dev/sda2  centos lvm2 a--  19.80g     0 
  /dev/sdb          lvm2 ---  20.00g 20.00g

pvdisplay:顯示物理卷的詳細信息

[root@lab-235 ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               19.80 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              5069
  Free PE               0
  Allocated PE          5069
  PV UUID               t9BxDY-n5nR-rkvF-V5zc-J3kU-3GML-27X82p

  "/dev/sdb" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb
  VG Name               
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Sv5VLs-ITKr-q0wj-z187-cbrW-cOUU-8gfySV

接下來我們要將新創建的物理卷添加到我們根分區所在的邏輯組,此處我們可以通過以下幾個命令首先獲取根分區所在組的名稱(VG name):
1、可以用上述pvscan、pvs、pvdisplay,我們都可以看到VG的名字是centos
2、也可以使用vgscan、vgs、vgdisplay,邏輯組專用命令查看
擴展根分區的邏輯組centos,此處因爲我們是擴展根分區,如果要創建可以使用vgcreate命令


[root@lab-235 ~]# vgextend centos /dev/sdb
  Volume group "centos" successfully extended

查看擴展後VG的情況

[root@lab-235 ~]# vgdisplay centos 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               <39.80 GiB
  PE Size               4.00 MiB
  Total PE              10188
  Alloc PE / Size       5069 / 19.80 GiB
  Free  PE / Size       5119 / <20.00 GiB
  VG UUID               RI64Bu-s1Gr-V1Jh-JcWr-EpSS-Z8zr-uwaKmp

此時我們看到VG Size明顯的變大了,從原來的19.8G,變成了39.8G
接下來我們將19G空間分配到根分區上去

[root@lab-235 ~]# lvresize  -L +19G /dev/centos/root 
  Size of logical volume centos/root changed from 16.07 GiB (4115 extents) to 35.07 GiB (8979 extents).
  Logical volume centos/root successfully resized.

此時邏輯卷已經增加,但是文件系統的容量是沒有增加的,此時我們還需要調整文件系統容量,這裏需要注意當前被擴展分區的系統類型,如果是xfs,就使用xfs_growfs,如果是ext系列的,就使用resize2f
查看文件系統類型我們可以使用blkid

[root@lab-235 ~]# blkid
/dev/sda1: UUID="a4afdc45-11ae-4ea5-afd4-394e94d3b2da" TYPE="xfs" 
/dev/sda2: UUID="t9BxDY-n5nR-rkvF-V5zc-J3kU-3GML-27X82p" TYPE="LVM2_member" 
/dev/sdb: UUID="Sv5VLs-ITKr-q0wj-z187-cbrW-cOUU-8gfySV" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="c33942b5-fd49-47e1-8d55-ea7dda4afc34" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="42ef240a-ebdf-4ef8-94ad-04a7a03b8915" TYPE="swap" 

調整文件系統容量

[root@lab-235 ~]# xfs_growfs /dev/centos/root 
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1053440 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4213760, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4213760 to 9194496

此時查看文件系統容量,發生如下改變,從原來的12G變成31G
在這裏插入圖片描述
至此完成擴容

總結:

1、如果是新創建的LVM,操作如下

pvcreate  /dev/sdb  /dev/sdc
vgcreate  -s 24M  vgname  /dev/sdb  /dev/sdc

說明:在創建卷組時需要注意一點,因爲卷組相當於的存放很多物理卷的池子,我們可以在這個池子中添加物理卷,也可以移除,但是在卷組中,它會把這些物理卷的空間全部重新分配爲大小相同的容量區域,稱之爲PE,所以在實際工作需要中根據自身需求可以指定這個PE的大小,默認是4MB,可以通過-s選項指定大小

lvcreate -L +20G  -n  lvname vgname

也可以使用小L指定PE數創建邏輯卷,此時路基卷大小N*單個PE大小,N表示PE個數
接下來就是文件系統的創建,和上面擴容後操作一樣,根據需求選在文件系統格式
2、LVM減容操作時,如果從有數據的邏輯捲上操作,一定要先備份數據(當我們在做磁盤管理時,無論做何種操作,尤其是有危害到數據的動作,一定要先備份),因爲減容前,我們要先卸載目錄,然後操作,完成後,因爲存儲空間元數據發生改變,此時在掛載時,會提示找不到文件系統的超級塊,會要求重新建立文件系統,相當於格式化操作。具體操作如下
備份數據


cp  -R  /test    /back

卸載目錄

mount   /test

如果無法卸載,查看當前目錄有哪些用戶使用,可以使用kill命令直接殺死進程號,也可以使用fuser命令的選項-k,直接殺死指定文件的所有進程

fuser  /test

fuser命令可以通過安裝psmisc軟件包獲取
壓縮空間

resize2fs  /dev/vgname/lvname1  10G 

減容

lvreduce  -L  10G  /dev/vgname/lvname1   

表示將lvname1空間減少至10G

lvreduce -L -10G  /dev/vgname/lvname1   

表示將lvname1空間減少10G
3、查看LV邏輯卷配置信息,可使用如下命令
lvscan:掃描邏輯卷
lvs:顯示基本信息
lvdisplay:顯示詳細信息
4、快照卷的創建,用到如下選項
-s:表示創建快照
-p r|w:指定快照讀或者寫權限
用法:lvcreate -L 10G -n snap-name -s -p r /dev/vgname/lvname1
針對邏輯卷lvname1創建一個10G大小的快照卷
快照卷的作用:如果遇到邏輯卷數據被刪除,可從快照卷中恢復









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章