LVM 設定說明

由 Derek 發表於 十一月 2, 2011 / 尚無評論

 

一、 LVM 介紹

LVM (Logical Volume Manager),中文為邏輯捲軸管理員。LVM的重點在於『可以彈性的調整filesystem容量』。使其可以更容易利用、管理映碟。當磁區空間不足時,可透過「VG」和「LV」來做硬碟空間的調整,調整時不會影響到原先存放的資料。

 

有關VGLV等相關說明可參考以下說明

Physical Volume (PV)

經由硬碟切割出來的實體partition

 

Volume Group (VG)

VG就是由多個 PV建立出的磁區再組合成一個虛擬的磁碟,此虛擬磁碟的容量大小和PE有關。每個VG最多僅能包含65534PE。若以LVM預設參數來說,一個CG最大可達256GB的容量。

 

Physical Extent (PE)

PE就如同是檔案系統裡的block大小. PELVM系統預設大小為4M,一個VG最多可以擁有65534PE,所以系統預設時,一個VG最大尺寸為65534*4M大概為256G.對於現在大硬碟 的狀況下很快就無法再延伸了.所以建議在設定PE時指定大小.除了預設的4M外只要是2的倍數在8k-16GB都是可以的範圍.

 

Logical Volume (LV)

最後VG還是會切成LV,而這個LV就是最後被使用的部份。至於LV的大小,也是和PE的總數有關。為了方便管裡系統,LV的裝置檔名通常指定為「/dev/vgname/lvname

名詞
意義
系統對應的位置
PV
實體分割區(Partition)
/dev/sda
VG
虛擬硬碟(磁區群組)
/dev/VGname/目錄
PE
實體延伸區塊
 
LV
虛擬分割區(邏輯群組)
/dev/VGname/LVname
 

  

二、LVN設定

1. partition

1.1 在還沒有開始設定PV之前要先切partition。至於要切幾個partition,就看個人而定了。在這邊切4

    partition每個容量為2G


[root@localhost ~]# fdisk /dev/sda

#先查看分割表的情況

Command (m for help): p

Disk /dev/sda: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          13      104391   83  Linux

/dev/sda2              14         666     5245222+  83  Linux

/dev/sda3             667         797     1052257+  82  Linux swap / Solaris

#由於目前已經有3partition,如果還要在分割4個的話必須要使用extended

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

e

Selected partition 4

First cylinder (798-2610, default 798):  #直接按ENTER

Using default value 798

Last cylinder or +size or +sizeM or +sizeK (798-2610, default 2610):  #ENTER

                                                                 #全給extended

Using default value 2610

Command (m for help): p

 

Disk /dev/sda: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          13      104391   83  Linux

/dev/sda2              14         666     5245222+  83  Linux

/dev/sda3             667         797     1052257+  82  Linux swap / Solaris

/dev/sda4             798        2610    14562922+   5  Extended

 

#開始切PV要用的partition請切4

Command (m for help): n

First cylinder (798-2610, default 798):  #直接按ENTER

Using default value 798

Last cylinder or +size or +sizeM or +sizeK (798-2610, default 2610): +2000M

 

#設定好後離開輸入w

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table.

The new table will be used at the next reboot.

Syncing disks.

#離開後會告知需要重開機才會生效

[root@localhost ~]# partprobe  #強制核心重新抓取partition table,就可不用重新開機

[root@localhost ~]# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          13      104391   83  Linux

/dev/sda2              14         666     5245222+  83  Linux

/dev/sda3             667         797     1052257+  82  Linux swap / Solaris

/dev/sda4             798        2610    14562922+   5  Extended

/dev/sda5             798        1041     1959898+  83  Linux

/dev/sda6            1042        1285     1959898+  83  Linux

/dev/sda7            1286        1529     1959898+  83  Linux

/dev/sda8            1530        1773     1959898+  83  Linux

以上的/dev/sda5,6,7,8為等等PV要使用的partition

 

2. PV設定

2.1常用的指令

指令
說明
pvscan
搜尋目前系統裡面任何具有 PV 的磁碟
pvcreate
將實體 partition 建立成為 PV
pvdisplay
顯示目前系統 PV的狀態
pvremove
將 PV 屬性移除,讓該 partition 不具有 PV 屬性。
 

2.2 查詢系統上有無PV


[root@localhost ~]#  pvscan

  No matching physical volumes found  #表示無任何的PV

 

2.3 將四個partition建立PV


[root@localhost ~]#  pvcreate /dev/sda{5,6,7,8}

 Physical volume "/dev/sda5" successfully created

 Physical volume "/dev/sda6" successfully created

 Physical volume "/dev/sda7" successfully created

 Physical volume "/dev/sda8" successfully created

 

2.4 查看建立後是否有問題


[root@localhost ~]#  pvscan

PV /dev/sda5                      lvm2 [1.87 GB]

PV /dev/sda6                      lvm2 [1.87 GB]

PV /dev/sda7                      lvm2 [1.87 GB]

PV /dev/sda8                      lvm2 [1.87 GB]

Total: 4 [7.48 GB] / in use: 0 [0   ] / in no VG: 4 [7.48 GB]

#[整體PV的容量]  [已被使用到VGPV容量]   [剩餘的PV]

 

[root@localhost ~]# pvdisplay

  "/dev/sda5" is a new physical volume of "1.87 GB"

  --- NEW Physical volume ---

  PV Name               /dev/sda5           #實際的partition名稱

  VG Name                                   #還沒分配,所以空白

  PV Size               1.87 GB             #容量大小

  Allocatable           NO                  #是否已被分配

  PE Size (KByte)       0                   #PV內的PE大小

  Total PE              0                   #共分割的PE

  Free PE               0                   #沒被LV使用的PE

  Allocated PE          0                   #還可分配的PE

  PV UUID               gXmwpU-0oP0-YSmt-rpSd-qj5H-cEYf-1xBcky

目前這邊的PE數為0是正常的,因為PE是由VG建立時才會設定的參數。

 

3. VG設定

3.1常用的指令

指令
說明
vgcreate
建立 VG 的指令
vgscan
搜尋系統上面是否有 VG 存在
vgdisplay
顯示目前系統 VG的狀態
vgextend
在 VG 內增加額外的 PV
vgreduce
在 VG 內移除 PV
vgchange
設定 VG 是否啟動 (active)
vgremove
刪除一個 VG
 

3.2 建立一個VG


                   # vgcreate -s 16M [VG名稱]  [PV名稱]

[root@localhost ~]#  vgcreate -s 16M  faqvg  /dev/sda{5,6,7}

#參數-s後面接的是PE的大小,單位可為m,g,t

  /dev/cdrom: open failed: Read-only file system

  /dev/cdrom: open failed: Read-only file system

  /dev/cdrom: open failed: Read-only file system

  /dev/cdrom: open failed: Read-only file system

  Volume group "faqvg" successfully created

 

3.3 查看建立的VG是否有問題


[root@localhost ~]#  vgscan  

  Reading all physical volumes.  This may take a while…

  Found volume group "faqvg" using metadata type lvm2

#確實有建立成功

 

[root@localhost ~]# pvscan

  PV /dev/sda5   VG faqvg           lvm2 [1.86 GB / 1.86 GB free]

  PV /dev/sda6   VG faqvg           lvm2 [1.86 GB / 1.86 GB free]

  PV /dev/sda7   VG faqvg           lvm2 [1.86 GB / 1.86 GB free]

  PV /dev/sda8                      lvm2 [1.87 GB]

  Total: 4 [7.45 GB] / in use: 3 [5.58 GB] / in no VG: 1 [1.87 GB]

#查詢是否已用掉/dev/sda5,6,7

 

[root@localhost ~]# vgdisplay

  --- Volume group ---

  VG Name               faqvg

  System ID             

  Format                lvm2

  Metadata Areas        3

  Metadata Sequence No  1

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                0

  Open LV               0

  Max PV                0

  Cur PV                3

  Act PV                3

  VG Size               5.58 GB    #整個VG容量大小

  PE Size               16.00 MB   #內部每個PE的大小

  Total PE              357        #總共PE

  Alloc PE / Size       0 / 0  

  Free  PE / Size       357 / 5.58 GB

  VG UUID               e2lS1t-7Rop-YHU4-qygQ-tDFq-LjVn-jOnv0h

 

3.4新增VG的大小。(把剩下的/dev/sda8加進去)


[root@localhost ~]#  vgextend  faqvg /dev/sda8

  /dev/cdrom: open failed: Read-only file system

  /dev/cdrom: open failed: Read-only file system

  Volume group "faqvg" successfully extended

 

#增加後再檢查一下VG容量大小是不是有改變

[root@localhost ~]# vgdisplay

  --- Volume group ---

  VG Size               7.44 GB

  PE Size               16.00 MB

  Total PE              476

  Alloc PE / Size       0 / 0  

  Free  PE / Size       476 / 7.44 GB

  VG UUID               e2lS1t-7Rop-YHU4-qygQ-tDFq-LjVn-jOnv0h

 

4. LV設定

4.1 常用的指令

指令
說明
lvscan
查詢系統上面的 LV
lvcreate
建立 LV
lvdisplay
顯示系統上面的 LV 狀態
lvextend
在 LV 裡面增加容量
lvreduce
在 LV 裡面減少容量
lvremove
刪除一個 LV
lvresize
對 LV 進行容量大小的調整
 

4.2 建立一個LV

建立的方式有兩種請選一種建立即可


#方法一 :

[root@localhost ~]# lvcreate -l 476 -n faqlv faqvg

  Logical volume "faqlv" created

#方法二 :

[root@localhost ~]#  lvcreate -L 7.44G -n faqlv faqvg

  Logical volume "faqlv" created

 

參數說明:

-L  後面接容量大小,單位可為M,G,T。最小單位為PE此數量必須為PE的倍數,要不系統會以

    最相近的容量為主。

-l  後面接的為PE的個數,可參考vgdisplay所顯示出的PE數。

-n  後面接的為LV的名稱

 

4.3 查看建立的LV是否有問題


#查看是否有建立成功

[root@localhost ~]# ll /dev/faqvg/faqlv

lrwxrwxrwx 1 root root 23 Nov  1 17:30 /dev/faqvg/faqlv -> /dev/mapper/faqvg-faqlv

 

#看系統上的LV狀態

[root@localhost ~]# lvdisplay

  --- Logical volume ---

  LV Name                /dev/faqvg/faqlv          #LV的全名

  VG Name                faqvg

  LV UUID                QMOpsQ-3k87-BHSx-7crB-Wrlh-Zx11-Hn332K

  LV Write Access        read/write

  LV Status              available

  # open                 0

  LV Size                7.44 GB                    #LV的容量大小

  Current LE             476

  Segments               4

  Allocation             inherit

  Read ahead sectors     auto

  – currently set to     256

  Block device           253:0

 

5. 掛載使用LV


[root@localhost ~]# mkfs -t ext3 /dev/faqvg/faqlv     #格式化

[root@localhost ~]# mkdir /mnt/lvm                    #建立要mount的資料夾

[root@localhost ~]# mount /dev/faqvg/faqlv /mnt/lvm/  #掛載

[root@localhost ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2             4.9G  1.2G  3.5G  25% /

/dev/sda1              99M   12M   83M  13% /boot

tmpfs                 506M     0  506M   0% /dev/shm

/dev/mapper/faqvg-faqlv

                      7.4G  145M  6.9G   3% /mnt/lvm     #多出此行就表示掛載成功


 

6. 最後把指令的部份統整一下


PV
VG
LV
搜尋(scan)
pvscan
vgscan
lvscan
建立(create)
pvcreate
vgcreate
lvcreate
列出(display)
pvdisplay
vgdisplay
lvdisplay
增加(extend)

vgextend
lvextend (lvresize)
減少(reduce)

vgreduce
lvreduce (lvresize)
刪除(remove)
pvremove
vgremove
lvremove
改變容量(resize)


lvresize
改變屬性(attribute)
pvchange
vgchange
lvchange

設定到這邊LVM的基本設定已經完成了,將LV掛載上後就可以開始使用了。

 

相關文章

LVM-LV的容量增減設定

LVM OS安裝設定方式 

LVM系統快照設定教學

 

 

關於作者

一個半路殺出來的傻小子,憑著一股傻勁努力的學習、嘗試、分享。希望能用自己微薄之力,替IT界和資訊界盡一點心力。單憑一己之力始終還是有限,歡迎和我有相同理念的夥伴一同加入一同努力。

評論

此文章尚無評論。

發表評論

*