1. 程式人生 > 其它 >Linux-lvm邏輯卷管理

Linux-lvm邏輯卷管理

目錄

LVM簡介

LVM : Logical Volume Manager,中文名為邏輯卷管理,是一種方便的磁碟分割槽管理機制。與一般的磁碟分割槽管理區別在於,LVM可以方便在不停機的狀況下,對各個分割槽調整大小。同時也可以通過將多個小物理磁碟整合成為一個大的邏輯分割槽,從而突破物理磁碟的大小限制,儲存更大的資料塊。
邏輯卷管理中有三個概念:物理卷,卷組,邏輯卷,物理擴充套件塊。
物理卷(PV):包含LVM相關的管理引數的磁碟或者磁碟分割槽。
卷組(VG):由物理卷組成的合集。
邏輯卷(LV):從卷組中抽出空間組成的邏輯上的磁碟。
物理擴充套件塊(PE):是邏輯卷中的最小儲存單元,預設大小為4MB。

原理簡介

LVM邏輯卷建立實現過程

流程圖

程式碼實現

對sdc進行分割槽

具體分割槽步驟可查詢
硬碟分割槽

需要注意的是分割槽完成後需要將該分割槽型別改為8e(LinuxLVM)

點選檢視程式碼
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

建立物理卷(pvcreate)

將sdb與sdc1劃分為物理卷。命令格式:

pvcreate [磁碟或分割槽目錄] [磁碟或分割槽目錄]

點選檢視程式碼
[root@localhost ~]# pvcreate /dev/sdb /dev/sdc1
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc1" successfully created.

建立卷組ts01(vgcreate)

將sdb與sdc1劃分為卷組ts01。命令格式:

vgcreate 卷組名稱 [物理卷] [物理卷]

點選檢視程式碼
[root@localhost ~]# vgcreate ts01 /dev/sdb /dev/sdc1
 Volume group "ts01" successfully created

建立邏輯卷ls01

從卷組ts01中劃分7G空間,建立為邏輯卷ls01。命令格式:

lvcreate -L [劃分大小] -n [卷組名] [邏輯卷名]

點選檢視程式碼
[root@localhost ~]# lvcreate -L 7G -n lv01 ts01
  Logical volume "lv01" created.

掛載格式化使用邏輯卷

建立data目錄,並將邏輯卷lv01格式化為xfs檔案系統,掛載在data目錄下。

點選檢視程式碼
[root@localhost ~]# mkdir /data
[root@localhost ~]# mkfs.xfs /dev/ts01/lv01
meta-data=/dev/ts01/lv01         isize=512    agcount=4, agsize=458752 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1835008, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mount /dev/ts01/lv01 /data

檢視掛載效果。

點選檢視程式碼
[root@localhost ~]# df -lh
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   42G  3.7G   39G   9% /
devtmpfs                 470M     0  470M   0% /dev
tmpfs                    487M     0  487M   0% /dev/shm
tmpfs                    487M  8.6M  478M   2% /run
tmpfs                    487M     0  487M   0% /sys/fs/cgroup
/dev/sda1               1014M  166M  849M  17% /boot
tmpfs                     98M  4.0K   98M   1% /run/user/42
tmpfs                     98M   32K   98M   1% /run/user/0
/dev/sr0                 4.3G  4.3G     0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/ts01-lv01    7.0G   33M  7.0G   1% /data

需要注意的是,這裡是臨時掛載,重啟後掛載失效。需將掛載資訊寫入/etc/fstab進行自動掛載。

自動掛載

擴充套件邏輯卷

擴充套件邏輯卷,首先要保證卷組中剩餘空間足夠,如果不足,首先需要在卷組新加入物理卷才能對邏輯捲進行擴充套件。擴充套件邏輯卷命令格式:

lvextend -L +[擴充套件大小] [邏輯卷的絕對路徑]

擴容後需要將掛載點進行重新整理後,新增大小才會顯現。命令格式:

xfs_growfs [掛載點]

點選檢視程式碼
[root@localhost ~]# lvextend -L +1G /dev/ts01/lv01
  Size of logical volume ts01/lv01 changed from 7.00 GiB (1792 extents) to 8.00 GiB (2048 extents).
  Logical volume ts01/lv01 successfully resized.
[root@localhost ~]# xfs_growfs /data
meta-data=/dev/mapper/ts01-lv01  isize=512    agcount=4, agsize=458752 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=1835008, 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 1835008 to 2097152
[root@localhost ~]# df -lh
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   42G  3.7G   39G   9% /
devtmpfs                 470M     0  470M   0% /dev
tmpfs                    487M     0  487M   0% /dev/shm
tmpfs                    487M  8.6M  478M   2% /run
tmpfs                    487M     0  487M   0% /sys/fs/cgroup
/dev/sda1               1014M  166M  849M  17% /boot
tmpfs                     98M  4.0K   98M   1% /run/user/42
tmpfs                     98M   32K   98M   1% /run/user/0
/dev/sr0                 4.3G  4.3G     0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/ts01-lv01    8.0G   33M  8.0G   1% /data